- GNU、GPL、GCC、G++
GNU:一个计划/运动,目标是创建一套完全自由的操作系统
GPL:GNU通用公共许可协议,广泛应用的自由软件许可证,linux发行时选择了GPL
GCC:GNU C Compiler,早期的C编译器,后来集成更多的编译器,GCC就代表 the GNU Compiler Collection
G++:GCC的C++编译器,g++ 是将 gcc 默认语言设为 C++ 的一个特殊的版本,链接时它自动使用 C++ 标准库而不用 C 标准库
编译器选择:根据后缀名,*.c调用C编译器,*.cpp调用C++编译器
编译C++程序:# g++ demo.cpp #或者 gcc -xc++ -lstdc++ -shared-libgcc demo.cpp(根据参考链接所述,现在使用gcc会自动进行编译器的选择)
https://www.zhihu.com/question/20940822/answer/16667772
- 查看cmake帮助
cmake -h
- 编译过程
cmake:生成makefile
make:生成目标文件
make install:将可执行文件、第三方依赖包和文档复制到正确的路径,可能需要权限
- 构建选项
cmake构建makefile文件时,可指定build生成路径、src源文件路径(包含CMakeLists.txt)、install路径:
-B:指定build路径,缺省则默认生成在当前路径下,若build文件夹已经cmake过,则可以省略-B参数制定build路径
-S:制定src源文件路径,-S可省略,默认为设定src路径,如常用的在build文件夹下使用cmake ..
-DCAMKE_INSTALL_PREFIX=/location/:指定make install路径,默认是/usr/local???
-DCMAKE_BUILD_TYPE=Debug / Release:构建目标类型
- cmake与autotools
autotools:GNU构建系统,是利用脚本和make程序在特定的平台上构建软件的过程
三部曲:./configure -> make -> make install
cmake:autotools替代方案,简化配置过程,跨平台构建
三部曲:cmake .. -> make -> make install
https://blog.csdn.net/qq_34924407/article/details/82917391
http://www.ttlsa.com/mysql/configure-to-cmake/
- catkin
catkin_make等价于:
catkin_make install等价于
catkin_make特定功能包:
catkin_make恢复所有功能包:
- catkin与cmake
catkin文件组织将cmake中间文件生成到build下,目标文件生成到devel / install下
cmake将中间文件和目标文件均生成到build下,install可指定
待续。。。