c - 如何从VC8中的2个静态库中获取所有符号冲突

标签 c visual-studio visual-studio-2005 static-libraries static-linking

假设我有 2 个静态库

ex1.a ex2.a

在这两个库中我将定义 10 个相同的函数

当编译示例测试代码“test.c”时,我链接到静态库 ex1.a 和 ex2.a

在“test.c”中我只会调用3个函数,然后我会得到 链接器错误“ex1.a 和 ex2.a 库中定义的符号相同”这是好的。

我的问题是: 1.为什么这个错误只显示3个函数作为多重定义..为什么不列出所有10个函数

  1. 在 VC8 中,如何列出所有多个定义的符号,而不在测试代码中实际调用该函数...

谢谢

最佳答案

那是因为,链接器在编译和链接具有函数调用的代码时尝试解析符号名称。仅当代码有一些函数调用时,链接器才会尝试在测试代码或链接的库中解析它,此时它会找到多个定义。如果没有调用任何函数,那么我想没问题。

关于c - 如何从VC8中的2个静态库中获取所有符号冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6289348/

相关文章:

c - 设置管道缓冲区大小

c - 标签作为 clang 中的值

c# - 添加 Controller 错误无法检索元数据

c# - Visual Studio 2008 与 2005 或 C# 3.0 与 C# 2.0 的新增功能是什么?

c++ - 是否有用于 Visual C++ 的编译器标志来检查调用 printf() 的类型安全性?

c - 如何在 GTK 中将图像堆叠在绘图区域上方

c - 从 C 中的文件读取时忽略\n?

c# - 在 C# 命令行应用程序中包含并执行 EXE

visual-studio - Visual Studio 2010:在PowerShell中动态构建工具窗口

c# - 从 COM 调用时如何调试托管代码中未处理的异常?