如何使用CMake在不同目录中包含包?

时间:2016-03-14 17:17:07

标签: c++ cmake centos

我正在尝试使用CentOS在服务器上编译一段C ++代码。我需要包含一个库(NLopt),它作为模块安装在“/ services / tools”位置。我试过“模块加载NLopt”,但CMake仍然没有找到库。

我需要做些什么才能让CMake找到包裹?

2 个答案:

答案 0 :(得分:2)

“默认情况下,[it]在/ usr / local / lib中安装NLopt静态库(libnlopt.a),在/ usr / local / include中安装NLopt头文件(nlopt.h),以及手册页和一些其他文件。“

因此,您可以将标题包含为

include_directories("/usr/local/include")

并将库链接为

target_link_libraries(project "/usr/local/lib/lbnlopt.a")

理想情况下,您可以尝试为库找到CMake查找模块。

答案 1 :(得分:0)

假设您的库位于/ service / tools / lib和/ service / tools / include中的头文件中,您还可以设置CMAKE_PREFIX_PATH,如下所示:

list(APPEND CMAKE_PREFIX_PATH /service/tools)