CMakeLists.txt实例运用(进阶)
在CMakeLists.txt实例运用(探索)中,我们将库文件和头文件安装到了电脑上,接下来,我们看看怎能使用电脑上安装的头文件和库。
新的文件结构如下:
CMakeLists.txt内容如下:
1 # 声明要求的 cmake 最低版本 2 cmake_minimum_required(VERSION 2.8) 3 # 声明一个 cmake 工程 4 project(helloSLAM) 5 6 # 将库文件链接到可执行程序上(名字都是上面设置的,统一对应即可,这里对应为静态库) 7 set(main src/main.cpp) 8 add_executable(sayHello ${main})
在src中只有一个main函数,没有sayHello.cpp,main函数内容没有改变。
同样用cmake ../make命令在build下面编译是会出现如下错误,提示找不到sayHello.h文件。
然后在CMakeList.txt中添加如下内容()上次我们将.h文件装到了如下位置:
include_directories(/usr/include/sayhello)
进入build进行重新构建,虽然找到了.h文件,但是没有发现库函数
我们并没有链接到共享库(动态库)上,因此添加如下内容就可以生成可执行文件,我们在使用别人的库的时候原理相同
target_link_libraries(sayHello libHello)
用ldd查看链接的库可以发现,确实链接到了libHello,是动态库liblibHello.so.1
如果要链接到静态库的话,用.a来声明要链接静态库即可
target_link_libraries(sayHello libHello.a)