cmake version 2.8.4
我有以下apache可移植运行时库,我自己编译并希望我的应用程序链接。
我的apr库所在的项目目录:
gw_proj/tools/apr/libs
在我的CMakeLists.txt中,我有以下内容:
FIND_LIBRARY(APRUTIL NAMES "aprutil-1"
PATHS ${PROJECT_SOURCE_DIR}/tools/apr/libs)
我的问题出现在已经安装了apache可移植运行时的计算机上,它将在此文件夹中查找它:
/usr/lib
所以总会忽略我的自定义路径。
如何强制FIND_LIBRARY
始终查看我的自定义目录:
gw_proj/tools/apr/libs
非常感谢任何建议
答案 0 :(得分:14)
您可以使用NO_DEFAULT_PATH
,NO_CMAKE_ENVIRONMENT_PATH
中的一个或多个来指定搜索顺序
,NO_CMAKE_PATH
,NO_SYSTEM_ENVIRONMENT_PATH
,NO_CMAKE_SYSTEM_PATH
,CMAKE_FIND_ROOT_PATH_BOTH
,ONLY_CMAKE_FIND_ROOT_PATH
或NO_CMAKE_FIND_ROOT_PATH
。
来自find_library
的文档:
默认搜索顺序旨在针对常见用例进行最具体,最不具体。项目可以通过多次调用命令并使用NO_ *选项来覆盖订单:
find_library(<VAR> NAMES name PATHS paths... NO_DEFAULT_PATH) find_library(<VAR> NAMES name)
一旦其中一个调用成功,结果变量将被设置并存储在缓存中,这样就不会再搜索任何调用。
所以在你的情况下,你可以做到
FIND_LIBRARY(APRUTIL NAMES "aprutil-1"
PATHS ${PROJECT_SOURCE_DIR}/tools/apr/libs NO_DEFAULT_PATH)