cmake-cookbook学习笔记之编译和链接静态和共享库
1、场景描述
主文件hello-world.cpp,里面包含头文件Message.hpp,Message.hpp里面类的实现在Message.cpp,现在要把将Message.hpp和Message.cpp两个文件编译成库,如下所示
hello-world.cpp
Message.hpp:
Message.cpp:
2、怎么做
2、可执行文件不变
3、链接库message和可行性目标hello-world
4、正常编译运行,会生成libmessage.a静态库和可执行文件hello-world
3、库类型介绍
4、实战举例
任务描述:主文件中需要将gps坐标转换成xyz坐标,而这个已经在第三方库GeographicLib中实现了,包含在LocalCartesian.hpp中的LocalCartesian类有一个函数Forward可以实现这个功能,因此以下实现将第三方库GeographicLib文件夹导入主工程并修改CMakeLists.txt实现在main.cpp中调用
4.1 导入文件夹
4.2 修改主工程的CMakeLists.txt,有注释部分就是添加的命令
4.3 main.cpp包含头文件
4.4 main.cpp调用库函数