【发布时间】:2021-04-03 17:38:35
【问题描述】:
我知道什么是预处理,编译器如何工作,以及链接器如何链接目标文件
但我仍然无法回答的是:
在像 VS 这样的 IDE 中
假设我们有一个名为 DariushTest.o 的库,它实现了一个名为 print() 的函数,并有一个名为 test.h 的头文件
我们还有其他实现print() 函数的库
但是我们没有在我们的代码中包含他们的头文件
假设我们在代码中包含test.h 标头,并且在主函数中使用print() 函数
现在!如果有几个库实现了这个功能。
编译代码后,链接器如何找出这段代码与哪个库相关,以及它应该链接到哪个文件?
我问这个问题的原因是头文件没有连接到DariushTest.o文件,编译器不关心它。
那么链接器如何从DariushTest.o 链接print() 函数而不是从其他库?
链接器如何找到正确的库?
【问题讨论】:
标签: c++ c++11 visual-c++ ide lib