[英]Including my own shared library with cmake
我在CMakeLists.txt中有以下代码,用于查找共享库libsieve.so
set(CPPLIB_DIR "${CMAKE_SOURCE_DIR}/../core/build")
find_library(CPPLIB_SIEVE_LIBRARY NAMES libsieve PATHS CPPLIB_DIR)
但是它失败了,找不到我的图书馆。 我有以下目录结构:
libsieve.so
CMakeLists.txt
我究竟做错了什么?
我不知道为什么cmake找不到所需的库,但是我可以建议一种借助cmake-gui使其实现的方法:如果第一次“配置”运行未能找到该库,则可以将其指向手动需要的库(设置完整的绝对路径)。 大多数情况下,这种解决方案对我有用。
同样,如果库是使用一个工具链(例如Intel C ++)构建的,而您的项目是使用另一条工具链(例如clang)构建的,则找不到库的原因可能是项目与库之间的二进制不兼容。
更新。 最初的问题是引用CPPLIB_DIR。 应该是:
find_library(CPPLIB_SIEVE_LIBRARY NAMES sieve PATHS ${CPPLIB_DIR})
Cmake find_library
希望您提供库名或库文件名。
您通过在库名称中添加“ lib”前缀来混合两者。 所以,你应该尝试更换libsieve
通过任何sieve
或libsieve.so
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.