Ich habe ein kleines Projekt mit einem Makefile, das ich in CMake konvertieren möchte, hauptsächlich, um Erfahrungen mit CMake zu sammeln. Für die Zwecke dieses Beispiels enthält das Projekt eine Quelldatei (C ++, obwohl ich die Sprache nicht für besonders relevant halte) und eine statische Bibliotheksdatei, die ich von einer anderen Stelle kopiert habe. Nehmen Sie aus Gründen der Argumentation an, dass der Quellcode für die Bibliothek nicht verfügbar ist. Ich habe nur die .a-Datei und den entsprechenden Header.
Mein handgemachtes Makefile enthält diese Build-Regel:
main: main.o libbingitup.a
g++ -o main main.o libbingitup.a
das funktioniert gut. Wie kann ich CMake anweisen, dies zu reproduzieren? Natürlich nicht genau dieses Makefile, sondern etwas, das einen äquivalenten Verknüpfungsbefehl enthält. Ich habe die offensichtlichen, aber naiven Wege ausprobiert
add_executable(main main.cpp libbingitup.a)
oder
add_executable(main main.cpp)
target_link_libraries(main libbingitup.a)
sowie verschiedene Dinge mit link_directories(.)
oder add_library(bingitup STATIC IMPORTED)
etc., aber bisher nichts, was zu einer erfolgreichen Verknüpfung führt. Was soll ich tun
Versionsdetails: CMake 2.8.7 unter Linux (Kubuntu 12.04) mit GCC 4.6.3