Wie kompiliere ich die Quelldatei jedes Mal neu, wenn ich cmake 2.8.2 in Single Build für C ++ 11 und C ++ 98 für die Erstellung einer gemeinsam genutzten Bibliothek verwende?

Ich habe eine Projektverzeichnisstruktur von:

Root
  Source
    Common
      MyFolder
      ++ My 3 source files and header 

Wenn ich mein Projekt erstelle, werden 3 bis 4 gemeinsam genutzte Bibliotheken erstellt. Lib1 mit c ++ 98 kompiliert und andere mit c ++ 11. Flags werden in der Datei CmakeList.txt hinzugefügt, die sich im Stammverzeichnis befindet. Ich muss meine 3 Quelldateien für @ kompilier Lib1 und auch für andere Bibliotheken. Aber hier passiert, dass der Compiler zuerst meine Quelldatei für lib mit c ++ 11 kompiliert und dann versucht, dieselbe .o-Datei auch für Lib1 zu verwenden. Für .o-Dateien, die mit C ++ 11 generiert wurden, wird eine Ausnahme ausgelöst, wenn dieselbe für die kompilierte C ++ 98-Bibliothek verwendet wird.

So schreiben Sie dies in CmakeList.txt, sodass der Compiler die Quelldatei für Lib1 (kompilierte C ++ 98-Bibliothek) erneut kompiliert, anstatt zu versuchen, dieselbe .o-Datei zu verwenden.

Gibt es ein Flag, das ich angeben kann, damit die vorkompilierte .o-Datei nicht verwendet und erneut kompiliert wird?

Hier werden Flags für verschiedene gemeinsam genutzte Bibliotheken nicht überschrieben, aber tatsächlich wird dieselbe Objektdatei von make file für verschiedene Flags verwendet.