近段时间,博主一直在学习gcc编译以及make的一些知识,有一些小的感想分享一下。
我们在编译文件的时候一直采用的是
//假设我们有 1.h 1.cpp 2.h 2.cpp main.cpp
我们编译经常是
g++ -c 1.cpp
g++ -c 2.cpp
g++ -c main.cpp
g++ -o 1.o 2.o main.o -o main.out
如果我们这样编译行不行
g++ 1.cpp 2.cpp main.cpp -o main.out
这样编译也可以,不过有几点需要注意:
1、这样不会有中间文件输出
2、一旦编译出错,整个项目的所有文件都需要重新编译。文件编译花费的时间不长还好,如果需要花费很长的时间,那么对于开发人员来说将是大大降低工作效率的存在(这里也可以查看VS的编译过程,它会将已经编译过的文件写成obj文件,然后如果你没有改过源文件,VS是不会再去编译这个文件的,只是链接的时候会把这些中间文件链接成一个exe程序)
PS: 我在用centos7 进行g++的时候,会出现这么个错误
g++: command not found
明明已经安装了gcc g++ 为什么还会出现这样的错误,如果放在ubuntu下面,这是没有问题的,可能centos 有些地方和ubuntu不一样吧,解决方案在下面:
yum -y update gcc
yum -y install gcc+ gcc-c++
亲测,源于:https://blog.csdn.net/sz76211822/article/details/79137074