我可以要求VC++链接器忽略未解析的外部吗?

sha*_*oth 11 c++ compiler-construction linker visual-c++

我正在尝试使用VC++构建一个非常复杂的开源项目.该项目由数十个库和一个可执行文件组成,具体取决于这些库.

由于某些原因,VC++链接器不希望在其中一个库中看到大约40个函数,并且每个库都报告"未解析的外部引用",所以我无法链接.我不想浪费时间解决问题 - 这些功能可能永远不会被调用.

我想让链接器链接它看到的内容并插入一些合理的错误处理(比如报告错误并终止程序)而不是丢失函数.我怎样才能做到这一点?

Joe*_*oeG 13

您可以使用/FORCE:UNRESOLVED链接器选项.

该文档包含相当低调的警告:

使用此选项创建的文件可能无法按预期运行.

在实践中,不会有错误处理 - 只是崩溃.


小智 6

如果真正从未调用过函数,则为库创建实际库(.lib文件).然后链接器将仅从库中提取所需内容.

链接器的工作是解析所有引用,所以我认为你不会让它插入错误处理代码.

PS我要检查的第一件事是看C函数是否编译为C++,导致缺少符号.


Dea*_*dMG 5

如果它们从未被调用过,请从项目中删除引用.如果他们被召唤,那么解决该死的问题.这里没有其他选择.