2011-06-09 76 views
1

我最近開始使用CMake作爲我的多平臺項目之一,但我在處理如何執行某些操作時遇到了一些麻煩。將標題/庫/可執行文件移動到特定目錄

基本上,在項目中我有多個庫和可執行文件,都在自己的文件夾中。我想將所有已編譯的庫放到構建的一個目錄中,即CMake構建文件夾內的lib文件夾。我想爲可執行文件做同樣的事情。

CMake Build Directory 

| ----------> bin (where i want the executables to go) 

| ----------> lib (where i want the libraries to go) 

| ----------> utils (where the libraries are ordinarily compiled) 

| ----------> test (where the executables are ordinarily compiled) 

在我使用的所有不同庫和可執行文件的utils和apps中有目錄。我在我的源目錄的基礎文件夾中有一個CMakeLists,它添加​​了所有的子目錄。如果有什麼不合理的話,隨時提問。

回答

4

您也可以使用此:

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) 
    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) 
    set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) 
3

看看install CMake命令。從該頁面

這裏例如:

install(TARGETS myExe mySharedLib myStaticLib 
     RUNTIME DESTINATION bin 
     LIBRARY DESTINATION lib 
     ARCHIVE DESTINATION lib/static) 
install(TARGETS mySharedLib DESTINATION /some/full/path) 

所以,你可以使用CMAKE_BINARY_DIR不是/一些/全/路徑

+2

注:效果只能實際用'make install'實現。 – thiagowfx 2014-11-06 22:59:14

1

此外,包括:

install(FILES ${HEADERS} DESTINATION inc)

[時安裝的頭文件集]

install(DIRECTORY include/${PROJECT_NAME}/ DESTINATION inc)

[時安裝頭目錄]

More Info

相關問題