差异GCC和G 作为链接器



当我在CodeBlocks中设置一个新项目和特定C作为语言时,它将g++用作链接。

内部设置有:

Linker for Dynamic libs : g++

gccg++作为链接器有什么区别?

当gcc语言前端( gccg++gfortran等(调用链接将委派给系统链接器ld,将默默地传递到链接器语言的样板选项与该前端相关联(CC++Fortran等(。

这些样板选项由构建器确定工具链(通常是您的发行版(。显着差异是在链接不同的标准库之间语言。您可以通过指示全面检查差异从链接器请求详细模式的前端:通过-Wl,-v

为什么默认情况下code :: blocks使用g++作为链接器,即使对于C语言项目?这是最简单的默认值:生成的链接选项将起作用当然,仅供C 项目;他们也将专门工作C语言项目(尽管有一些冗余(,并且它们也将用于混合C/C 语言项目。

如果您在C中进行编程,而不是全部在C 中进行编程,则此决定确实存在缺陷因此,在经济上已安装了gcc,但在您的g++上没有系统。然后,您会发现您的代码范围内:: Blocks C Projects无法链接因为您没有默认的链接器。但是你可以解决这个问题通过更改动态libs 从 g++更改链接器,将其更改为gcc在工具链的全局编译器设置中。

嗯,GCC专为C 设计用于C 。区别与默认链接的库有关(例如,GCC更喜欢C实现(。

有关更多信息,请参阅此信息。

最新更新