采用声明和定义简单函数的头文件和实现文件的经典示例,以及包含调用该函数的main()的第二个实现文件,编译器将生成两个目标文件。
1)在链接这些文件以生成可执行文件时,订单是否重要?
This question有一个答案表明订单无关紧要。
This site明确同意,举例说明使用GCC。
2)如果订单确实重要,那么像Visual Studio这样的IDE如何确定适当的链接顺序?
我在使用gcc / g ++构建时遇到未解决的符号错误,需要改变makefile中目标文件的顺序来解决这个问题。但是,我可能错误地记录了链接库文件。
答案 0 :(得分:2)
对象文件的链接顺序无关紧要。图书馆订单确实很重要,这是开发商的责任。
说实话,接头很古老。现代语言没有链接器,但GCC特别不遗余力地与过去保持兼容。