首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CMake查找本地目录库

问使用CMake查找本地目录库
EN

Stack Overflow用户
提问于 2019-02-10 05:10:50
回答 1查看 100关注 0票数 0

我有一个名为myproject的项目,它有一个构建目录myhome/myproject/build。

我有一个名为libmylibrary.so的库,它位于myhome/folder/lib中,头文件位于myhome/folder/include中

然后我在myhome/myproject中有一个CMakeLists.txt,它看起来像这样:

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.5.1)                                                                                                                                                                       
project (myproject)
file(GLOB SOURCES "src/*.cpp")
add_executable(myproject ${SOURCES})

find_library(MYLIB mylibrary REQUIRED)
target_link_libraries(myproject PRIVATE mylibrary)

我在build目录中运行cmake ../,然后运行make,我得到:

代码语言:javascript
复制
/usr/bin/ld: cannot find -lmylibrary
collect2: error: ld returned 1 exit status

我就是不明白这怎么会这么难。我遗漏了什么?我尝试了所有随机但命名极其相似的CMake指令的组合,都没有成功(也没有关于成功或失败的原因的信息,所以这只是一次试错)。

我如何才能知道我的库在哪里,这样CMake就可以找到它,而不需要在CMake脚本中硬编码它?谢谢。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-10 06:15:55

有关库位置的提示CMake,可以将CMAKE_LIBRARY_PATH变量设置为包含所需库的目录:

代码语言:javascript
复制
cmake -DCMAKE_LIBRARY_PATH=myhome/folder/lib <other-cmake-arguments>

或者,如果你的库包含在lib/子目录下,你可以使用CMAKE_PREFIX_PATH变量来提示更高的目录:

代码语言:javascript
复制
cmake -DCMAKE_PREFIX_PATH=myhome/folder/lib <other-cmake-arguments>

后一种方式还会提示其他find_*命令,有关更多信息,请参阅该my answer。

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

https://stackoverflow.com/questions/54610780

复制
相关文章

相似问题

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