c++ - 使用 cmake 包含我自己的共享库

标签 c++ 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 实现它:如果第一次运行“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/

相关文章:

c++ - 删除指针的部分内存

c++ - 将结构传递给 C++ 中的模板函数

c++ - GTKMM:截屏 DrawingArea?

c++ - 特定目标文件的单线程构建

unit-testing - CMake如何使用单元测试安装测试文件

c++ - 什么是 msvc_x64_x64 以及与 msvc_x64 有何不同

c++ - 如何自动更新 HWND 的样式和位置?

cmake - 使用cmake,如何将external_project 语句构建的目标文件链接到另一个库?

c++ - 使用 Cmake 安装时创建动态库

c++ - 在位域 [dcl.enum] [class.bit] 中保存枚举类型