Skip to content

Wie erstellt man Objektdateien nur einmal mit cmake?

Lösung:

Nein. Dies wäre schwierig zu erreichen, da die Quelldateien mit verschiedenen Compileroptionen, Post-Build-Schritten usw. kompiliert werden könnten.

Was Sie tun können, ist, die Objektdateien in eine statische Bibliothek zu legen und stattdessen mit dieser zu verknüpfen:

add_library(mylib STATIC source1.c source2.c)
add_executable(myexe source3.c)
target_link_libraries(myexe mylib)

EDIT: natürlich kannst du es in a geteilt auch Bibliothek.

Ja, in CMake 2.8.8 können Sie eine Objektbibliothek verwenden, bei der es sich um eine Art virtuelle Bibliothek handelt, die die gleichen Organisations- und Abhängigkeitseigenschaften einer echten statischen oder gemeinsam genutzten Bibliothek aufweist, aber keine Datei auf der Festplatte erzeugt. Siehe CMake-Tutorials: Objektbibliothek.

In neueren CMake-Versionen können Sie eine Objektbibliothek verwenden. Es verhält sich meistens wie jede andere Bibliothek, archiviert es jedoch nicht in einer statischen Bibliothek:

add_library(my_cpps OBJECT a.cpp b.cpp c.cpp)

Sie können es dann mit anderen Zielen "verlinken":

add_library(my_lib1 d.cpp e.cpp f.cpp)
target_link_libraries(my_lib1 PUBLIC my_cpps)

add_library(my_lib2 f.cpp g.cpp h.cpp)
target_link_libraries(my_lib2 PUBLIC my_cpps)
Click to rate this post!
[Total: 0 Average: 0]


Tags : /

Anderer Beitrag

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.