gcc和g++之间的链接过程有什么区别吗?
我有一个大型C项目,我刚刚将其中一部分代码切换到了C ++。该代码尚未使用std C ++库,因此现在不需要-llibstdc ++
。
gcc和g++之间的链接过程有什么区别吗?
我有一个大型C项目,我刚刚将其中一部分代码切换到了C ++。该代码尚未使用std C ++库,因此现在不需要-llibstdc ++
。
static
和全局对象;它们的魔法在启动例程中,只有在C++模式下链接才能生效。 - Fred Foomain.c
和 real_code.cpp
这样的东西,该怎么办呢?是 gcc -c main.c
,g++ -c real_code.cpp
,然后 g++ real_code.o main.o
吗? - Šimon Tóthgcc
和 g++
都只是调用其他程序的驱动程序,不会做任何其他事情,因此您可以使用-v
选项查看它们所做的确切操作,以及它们用什么参数调用其他程序。因此,您可以查看使用特定版本和体系结构的gcc使用gcc
和g++
进行链接的区别。但是,如果要实现可移植性,则不能指望这种情况保持不变。
根据您的需求,您可能还对-###
参数感兴趣。
我认为g++链接器将寻找CPP编码的函数名称,这与C语言不同。我不确定gcc是否能够处理这种情况。(只要您可以明确使用C版本而不是C++版本)。
如果您有
extern "C" {
<declarations of stuff that uses C linkage>
}
在你的代码中,对象文件已经使用g++ -c
编译。但我不敢打赌。