gpt4 book ai didi

cmake - 强制cmake FIND_LIBRARY在自定义目录中查找

转载 作者:行者123 更新时间:2023-12-03 14:56:35 45 4
gpt4 key购买 nike

cmake版本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 Portable Runtime的机器上,它将在此文件夹中查找它:
/usr/lib

因此,将始终忽略我的自定义路径。

如何强制 FIND_LIBRARY始终显示在自定义目录中:
gw_proj/tools/apr/libs

非常感谢您的任何建议

最佳答案

您可以使用NO_DEFAULT_PATHNO_CMAKE_ENVIRONMENT_PATH中的一个或多个来指定搜索顺序
NO_CMAKE_PATHNO_SYSTEM_ENVIRONMENT_PATHNO_CMAKE_SYSTEM_PATHCMAKE_FIND_ROOT_PATH_BOTHONLY_CMAKE_FIND_ROOT_PATHNO_CMAKE_FIND_ROOT_PATH

find_library 的文档中:

The default search order is designed to be most-specific to least-specific for common use cases. Projects may override the order by simply calling the command multiple times and using the NO_* options:

find_library(<VAR> NAMES name PATHS paths... NO_DEFAULT_PATH)
find_library(<VAR> NAMES name)

Once one of the calls succeeds the result variable will be set and stored in the cache so that no call will search again.



因此,就您而言,您可以
FIND_LIBRARY(APRUTIL NAMES "aprutil-1"
PATHS ${PROJECT_SOURCE_DIR}/tools/apr/libs NO_DEFAULT_PATH)

关于cmake - 强制cmake FIND_LIBRARY在自定义目录中查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15763328/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com