首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在CMake find_library中使用任何模糊搜索技巧吗?

我可以在CMake find_library中使用任何模糊搜索技巧吗?
EN

Stack Overflow用户
提问于 2022-10-17 06:51:57
回答 2查看 23关注 0票数 0

我的动机是:我想找到一个名为libboost_python38.so的库,如果像这样使用find_library命令,我就找不到库:

代码语言:javascript
复制
find_library(USD_BOOST_PYTHON boost_python HINTS ${USD_LIBRARY_DIRECTORY})

只有当我使用此命令时,才能找到库:

代码语言:javascript
复制
find_library(USD_BOOST_PYTHON boost_python38 HINTS ${USD_LIBRARY_DIRECTORY})

这种方法将使我的cmake文件失去一些跨平台功能,所以我希望通过一些模糊搜索方法来搜索这个库。我能用更好的方式做这件事吗?

EN

回答 2

Stack Overflow用户

发布于 2022-10-17 13:30:23

没有什么特别的,但是您可以使用NAMES参数,并传递一些find_library应该查找的坦率的名称,请参阅这里。您还可以提供一些不同的PATHPATH_SUFFIXES,这可能会有所帮助。

如果仍然需要更多的逻辑来查找库,那么很可能需要在find_library调用之前处理它们,例如,预先总结库的名称,将其放入变量,并将其作为库的名称传递给find_library

票数 0
EN

Stack Overflow用户

发布于 2022-10-17 16:15:44

不要为此目的使用find_library。相反,请使用boost随cmake配置脚本并使用find_package这一事实。

代码语言:javascript
复制
find_package(Boost REQUIRED COMPONENTS python)
target_link_libraries(my_target PRIVATE Boost::python)

这有一个额外的好处,即所有依赖项都会自动添加到my_target中,同时还会添加必要的包含目录。

如果您已将包安装到默认位置,则不需要任何附加信息。如果您自己构建了boost并将其安装到一个非标准位置,您可能需要提供有关安装位置的信息,例如将安装位置添加到CMAKE_PREFIX_PATH中。

注意:find_package有额外的参数,允许您在需要时限制可接受的boost版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74093482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档