8
在我的项目中有一个包含第三方库(google test,zlib,...)的文件夹。我想在建立所有这些库时将这些库放在一个公用文件夹中。我试图用cmake做到这一点,但我遇到了问题。我想这样的代码:使用cmake编译后复制或移动库
add_subdirectory(gtest-1.6.0)
add_custom_command(
TARGET gtest_main
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${SRC_LIB_DIR}/*.a ${DST_LIB_DIR})
我想这个问题可能是,如果你设置你的CMakeLists的CMAKE_LIBRARY_OUTPUT_DIRECTORY
变量GTEST主要在不是在这个水平,但在一个较低的水平
不起作用。制作此代码:SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY“$ {PROJECT_BINARY_DIR}/third_party/lib/release”)然后添加gtest子目录,什么都不做。这些库总是去gtest目录根目录。 – Killrazor 2013-03-14 14:57:37
由于默认情况下gtest会建立'STATIC'库,所以您需要设置['CMAKE_ARCHIVE_OUTPUT_DIRECTORY'](http://www.cmake.org/cmake/help/v2.8.10/cmake.html#prop_tgt:ARCHIVE_OUTPUT_DIRECTORY)而不是CMAKE_LIBRARY_OUTPUT_DIRECTORY是'SHARED'库。 – Fraser 2013-03-15 00:30:07
谢谢弗雷泽和帕特里克。 CMAKE_ARCHIVE_OUTPUT_DIRECTORY取得了诀窍。感谢两个! – Killrazor 2013-03-20 16:43:24