Cmake und gcc kombinieren

8

Ich habe viele Quelldateien im Quellverzeichnis. Zum Beispiel a.c, b.c, c.c und wollen es mit gcc mit -combine-Option kompilieren.

%Vor%

Cmake kompiliert jede * .c Datei in der Objektdatei, aber ich möchte alle Quellen zu einem Objekt kompilieren. Wie kann ich das bekommen?

In Bezug auf gcc:

%Vor%

Aber cmake verwendet pro Modul die Übersetzung von Quellen.

%Vor%

Die Übersetzung mit dem Kombinat könnte die Leistung des Programms beschleunigen. Ich konnte nicht LTO verwenden, das das gleiche Problem in cmake wegen der alten Version von gcc beheben konnte.

Danke.

    
Igor Petushkov 14.06.2011, 16:45
quelle

1 Antwort

1

Verwenden Sie add_custom_target / add_custom_command.

In jedem Fall ist es nicht portable Konstruktion, also hier einfaches Beispiel

[Projektstamm] mit zwei Ordnern darin [src] - hier N Dateien, [build] für binary und CMakeLists.txt

%Vor%

Im Build-Ordner run cmake ..; mache VERBOSE = 1 ganz

Dies wird die Arbeit für Sie machen.

Aber, das gesamte Programm funktioniert nur mit ausführbaren Dateien, wie in der Dokumentation .

  

-für alle Programme   Angenommen, die aktuelle Kompilierungseinheit repräsentiert das gesamte kompilierte Programm. Alle öffentlichen Funktionen und Variablen mit Ausnahme von main und diejenigen, die durch das Attribut external_visible zusammengeführt werden, werden zu statischen Funktionen und werden durch interprozedurale Optimierer aggressiver optimiert.

Du hast also main irgendwo in deinen Quelldateien definiert.

    
Sergei Nikulov 16.11.2011 12:46
quelle

Tags und Links