1、头文件没添加
在CMakeLists.txt中添加如下,/xx/xxx/xxxxx/xxxxx/
自行替换成所需的头文件路径,如果头文件在项目中使用相对路径
即可,如果不在项目中使用绝对路径
include_directories(
/xx/xxx/xxxxx/xxxxx/
)
2、库文件未添加
2.1 添加库文件路径
在CMakeLists.txt中添加如下,/xx/xxx/xxxxx/xxxxx/
自行替换成所需的库文件路径,如果库文件在项目中使用相对路径
即可,如果不在项目中使用绝对路径
link_directories(
/xx/xxx/xxxxx/xxxxx/
)
2.2 链接使用的库
在CMakeLists.txt中添加如下,/xx/xxx/xxxxx/xxxxx/
自行替换成所需的库文件路径,如果库文件在项目中使用相对路径
即可,如果不在项目中使用绝对路径
target_link_libraries("项目名"
xxx //库名称
yyy //库名称
)
项目名:
C++的项目名
库名称:
例如我要链接的库是libopencv_core.so
,将上面的xxx
写成opencv_core
即可
Q:
构建时报错:
error while loading shared libraries: xxx.so: cannot open shared object file: No such file or directory
,而且该库已经包含在目录中了。
A:
首先使用ldd /path/to/项目
命令查看该项目依赖的哪个库没有找到,发现libtbb.so.12
没有找到。
使用sudo ldconfig /包含库的目录/
命令来更新缓存,就可找到了