使用在不同目录中创建的共享库

时间:2018-06-09 08:58:37

标签: c++ cmake

我用library.h和library.cpp创建了一个共享库。然后编写了一个CMakeLists.txt文件,将其构建为共享库。

的CMakeLists.txt

/home/user/projects/test_lib/bin/libtest_pro.so

在构建库之后,我能够将.so文件作为/home/user/projects/testproject

获取

然后我尝试将创建的库链接到cmake_minimum_required(VERSION 3.10) project(testproject) set(CMAKE_CXX_STANDARD 11) link_directories( /home/user/projects/test_lib/bin ) add_executable(testproject main.cpp) target_link_libraries (testproject test_pro)

中的另一个项目

CMakeLists.txt

main.cpp

它成功构建了testproject(ldd命令显示它已正确链接),但我无法使用我在其中创建的库。

在我试过的#include "library.h"中,

#include "test_pro"

#include <test_pro>

#include <test_pro/library.h>

fatal error: xxx: No such file or directory

但是以上所有都给出了构建失败({{1}})。我如何使用这个创建的库?

1 个答案:

答案 0 :(得分:1)

就像您设置link_directories()一样,您必须指定include_directories()。建议不要使用link_directories(),而是将库的绝对路径传递给target_link_libraries()