c++: obj文件链接的顺序重要吗?

C++: Does the order that obj files are linked matter?

本文关键字:顺序 obj 文件 链接 c++      更新时间:2023-10-16

以头文件和实现文件声明和定义一个简单函数,第二个实现文件包含调用该函数的main()为例,编译器将生成两个目标文件。

1)当链接这些文件生成可执行文件时,顺序重要吗?

这个问题的答案表明顺序无关紧要。

这个站点明确同意,给出了一个使用GCC的例子。

2)如果顺序很重要,像Visual Studio这样的IDE如何确定适当的链接顺序?

在使用gcc/g++构建时遇到无法解决的符号错误,并且需要更改makefile中目标文件的顺序来修复此问题,我有明显的记忆。但是,我可能记错了链接文件

object文件的链接顺序不重要。库的顺序确实很重要,这是开发人员的责任。

老实说,链接器是相当古老的。现代语言没有链接器,但GCC特别努力保持与过去的兼容。