【发布时间】:2014-08-05 23:38:36
【问题描述】:
问题的定位
我试图强制 cmake 使用一个特定的库。我希望可执行文件与这个静态链接,而不是其他链接。如果无法从“/XXX/static_libs”目录静态链接“libgpg-error.a”和“libgcrypt.a”,我希望构建失败。
到目前为止我所拥有的:
到目前为止,我的 CMakeLists.txt 如下所示:
# Project Setup
project(file_crypt)
set(EXECUTABLE_OUTPUT_PATH bin/${CMAKE_BUILD_TYPE})
# Includes
include_directories(.)
# Link
link_directories( ${gcrypt_lib_dir} ${dl_crypt_lib_dir} )
find_library( gcrypt_libs NAMES libgcrypt.a libgpg-error.a PATHS ${gcrypt_lib_dir} NO_DEFAULT_PATH )
# Executables Declarations
add_executable( my_decrypt
my_decrypt.cpp [...] )
set_target_properties( my_decrypt PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32" )
# Link to libraries
target_link_libraries( my_decrypt ${gcrypt_libs} dl crypt )
我补充说:
gcrypt_lib_dir:FILEPATH=/XXX/static_libs
到我的 CMakeCache.txt。如果我在 "/XXX/static_libs" 上执行 "ls",我可以同时看到 "libgpg-error.a" 和 "libgcrypt.a"。
然后我运行 cmake。 然后将 gcrypt_libs 变量设置为 not found
问题
- 为什么 cmake 找不到那些库?
- 上面的文件正确吗?
【问题讨论】:
标签: cmake