# 三方库的Compile
这里更多的是在于一些编译技巧的整理
# Debug和Release
Debug和Release和字面的意思一样,用途不一样
- 前者用在gdb时候能跳转源代码方便找错
- 后者就是错了一般就一个代码(如果自己不写try..catch)的话, 但执行效率会高很多
Debug和Release最大的区别就是在标准编译器下(gcc/g++),是否添加了-g
标识符号
在cmake里,使用简单set(CMAKE_BUILD_TYPE Debug)
就能完成
- 当然不是绝对的,很多时候能否真实编译出来,还要调整编译的优化程度等
# CMAKE_PREFIX_PATH
cmake的包搜索通常是不会递归搜索子路径的,除了此变量下的目录
- 修改这个变量通常是在子模块很多的时候
- 一个一个的找到xxxConfig.cmake文件过于繁琐的时候
- 典型的就是Qt的cmake目录,里面文件好多好多,一个个加目录要疯,这个变量就很好的解决这个问题
当然别加太多,编译时间会有点长
# CMAKE_INSTALL_PREFIX
所有的cmake组织的包文件/执行文件,通常都会直接安装到系统目录下
- 这挺不好的,如果代码还不稳定更新比较多的情况下
- 指定这个变量,让
make install
命令,能够安装到非系统路径
当然这也有个坏处阿,不在系统路径的动态库需要加入ld.so.conf
动态库搜索文件,否则一般无法执行