之前学习Cmake都是在项目内部生成链接库(静态库.a 或动态库.so),生成后target_link_libraries(xxx libxxx) 就行。但最近使用tinyxml是下载之后先生成.a,再在自己的项目里使用它,有点区别。网上只找到了使用g++编译链接该库的方法,因此针对Cmake做个记录。
具体做法
- 外部生成静态链接库很简单,参照Linux 下配置Tinyxml,将其编译为静态库. 完成后得到一个libtinyxml.a文件,即后续要使用的静态库;
- 将头文件tinyxml.h、tinystr.h(可选,看自己是否使用)放到项目的include/(用于存放头文件)文件夹下;
- 新建一个lib/文件夹(或者是项目原本就有lib/),将libtinyxml.a放到此处;
- 编写CMakeLists.txt(只列举链接静态库的部分):
//包含头文件
include_directories(${PROJECT_SOURCE_DIR}/include)
//指定静态库的链接目录
link_directories(${PROJECT_SOURCE_DIR}/lib)
//将静态库链接到目标文件exe
target_link_libraries(exe ${src} libtinyxml.a)
至此,静态库链接完成 ,可以愉快使用tinyxml了!