我的 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 实现它:如果第一次运行“configure”找不到你可以指向的库手动将其添加到所需的库(设置完整的绝对路径)。大多数时候,这种解决方案对我有用。
此外,如果库是使用一个工具链(例如,Intel C++)构建的,而您的项目是使用另一个工具链(例如,clang)构建的,则找不到库可能是由于项目和图书馆。
更新。最初的问题是引用 CPPLIB_DIR。应该是:
find_library(CPPLIB_SIEVE_LIBRARY NAMES sieve PATHS ${CPPLIB_DIR})
关于c++ - 使用 cmake 包含我自己的共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12515505/