2016-03-21 6 views
0

Wenn ich mein C++ Programm kompiliert manuell geschrieben Make-Datei verwenden, verwende ich den folgenden Befehl ein:Was die entsprechende Funktion ist, die eine „-L“ und -rpath Flagge in g ++ generieren

LNK_FLAG  = -L $(LIB_PATH) -lnameofmylib 
RPATH_FLAG = -Wl,-rpath,$(LIB_PATH) 

und ich verwende make LIB_PATH=/path/to/my/lib zu baue mein Programm auf.

Jetzt möchte ich cmake verwenden, um mein Programm zu erstellen, also frage ich mich, ob es einige Mechanismen gibt, das zu tun? oder muss ich set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L ${LIB_PATH} -lnameofmylib -Wl,-rpath,${LIB_PATH}") verwenden?

+1

Zu viele Fragen in einem Beitrag: '-L' und' -l' Optionen sind in @Joel Antwort beschrieben, Einstellung 'LIB_PATH' zur Verwendung in Makefile kann durch' set (LIB_PATH <...> CACHE ...) 'ersetzt werden In CMake ist die RPATH-Behandlung in CMake in [Wiki] (https://cmake.org/Wiki/CMake_RPATH_handling) beschrieben. – Tsyvarev

+0

https://www.google.com/search?q=cmake+rpath und https://www.google.com/search?q=cmake+linking+library – Antonio

+1

Mögliches Duplikat von [CMake-Link zu externer Bibliothek] (http://stackoverflow.com/questions/8774593/cmake-link-to-external-library) – Antonio

Antwort

1

Wenn Sie einen Bibliothekssuchpfad hinzufügen möchten, verwenden Sie link_directories. Verwenden Sie zum Verknüpfen einer Bibliothek link_libraries. Dies kann auf jedem Betriebssystem oder Compiler/Linker portierbar sein, oder Sie verwenden Compiler-abhängige Features.

Verwandte Themen