gpt4 book ai didi

CMake find_library 匹配行为?

转载 作者:行者123 更新时间:2023-12-04 01:47:11 26 4
gpt4 key购买 nike

一指定find_library(<var> name PATHS path1..pathn)
我的问题是如何find_library()将名称与库文件匹配(在 Windows 和 Linux 上)?

例如,我无法拥有 find_library()在提供的 GraphicsMagicK 的 Windows 二进制安装中识别 MagicK 和 MagicK++ DLL 文件:

文件是:CORE_RL_magick_.dll
搜索查询:magickCORE_RL_magick不起作用。

最佳答案

您可能需要查看此文档链接:

http://www.cmake.org/cmake/help/v2.8.10/cmake.html#command:find_library

http://www.cmake.org/cmake/help/v2.8.10/cmake.html#variable:CMAKE_FIND_LIBRARY_PREFIXES

http://www.cmake.org/cmake/help/v2.8.10/cmake.html#variable:CMAKE_FIND_LIBRARY_SUFFIXES

find_library 可以接受一个或多个库名称。这些名称获得 CMAKE_FIND_LIBRARY_PREFIXES 和 CMAKE_FIND_LIBRARY_SUFFIXES 的值
附加。应该为每个操作系统设置这两个变量,具体取决于库在那里的前缀或后缀。

在你的情况下,我会为 Windows 编写

SET(CMAKE_FIND_LIBRARY_PREFIXES "")
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll")

对于 Linux
SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a")

然后写
find_library(
magick
CORE_RL_magick_ (or NAMES if there are multiple names for the same library on different systems)

PATHS
path1
path2
...
(other options that are specified in documentation and would be usefull to you)
)

编辑:
CMAKE_FIND_LIBRARY_PREFIXESCMAKE_FIND_LIBRARY_SUFIXES project() command 自动设置所以首先调用它和 find_library()在那之后是比手动设置变量更好的解决方案。

关于CMake find_library 匹配行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14243524/

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