• 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???

cmake、catkin知识点点点点

-DCMAKE_BUILD_TYPE=Debug / Release:构建目标类型

 

  • cmake与autotools

autotools:GNU构建系统,是利用脚本和make程序在特定的平台上构建软件的过程

                    三部曲:./configure -> make -> make install

cmake:autotools替代方案,简化配置过程,跨平台构建

               三部曲:cmake .. -> make -> make install

cmake、catkin知识点点点点

cmake、catkin知识点点点点

cmake、catkin知识点点点点

https://blog.csdn.net/qq_34924407/article/details/82917391

http://www.ttlsa.com/mysql/configure-to-cmake/


  • catkin

catkin_make等价于:

cmake、catkin知识点点点点

catkin_make install等价于

 cmake、catkin知识点点点点

catkin_make特定功能包

cmake、catkin知识点点点点

catkin_make恢复所有功能包

cmake、catkin知识点点点点

 

  • catkin与cmake

catkin文件组织将cmake中间文件生成到build下,目标文件生成到devel / install下

cmake将中间文件和目标文件均生成到build下,install可指定

 

待续。。。

 

相关文章: