gcc与g++测试


以前也分不清这这两者倒底有什么区别,动手测试了一下,明白了。

 

编译时

用g++,.c和.cpp文件都当作c++来编译。

用gcc,.c当c文件编译,.cpp当c++文件编译。

如果test.c中使用的是c++语法,只能用g++编译。

只有源码是.c,且用gcc编译时,才会有__cplusplus宏定义。

 

链接时

gcc链接的话,不能自动链接c++库,需要手工添加-lstdc++

gcc -lstdc++ test.cpp -o test

象下面这样,可以编译但链接不了。

gcc -c test.cpp -o test.o

gcc test.cpp -o test

 

关于extern,两者一样,都是按C方式处理

 

g++和gcc内部使用的程序是一样的,只不过根据文件扩展名当作c还是c++来处理这一点不同。再就是gcc链接是不能链接libstdc++库

 

你可能感兴趣的:(c,测试,gcc,扩展)