c++ - 链接到链接到我已经链接到的库的库

标签 c++ static-libraries static-linking one-definition-rule

请原谅这个令人费解的标题。

这个问题的设置如下:

我有一个开源库,我已将其内置到一堆 .lib 中(如果你好奇的话,可以使用 VTK)

我有一个使用上述静态库的库。让我们称之为 Lib A。

我还有一个使用上述库(即 VTK)并且还使用 Lib A 的应用程序。

在构建期间,我收到一个链接器错误,告诉我从库 A 调用的函数已经在链接到应用程序的库中定义(错误:LNK2005)

关于如何解决将所有内容切换为动态链接的问题的任何想法?

最佳答案

好的。我弄清楚我做错了什么。

库 A 使用的是静态构建版本的 VTK,而主应用程序链接的是 VTK 的动态链接版本。

所以问题真的是我在 .lib 和 .dll 中定义了相同的函数,这导致链接器失败。

关于c++ - 链接到链接到我已经链接到的库的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21864200/

相关文章:

c++ - 什么是段错误?

c - IAR 使用不同的 #define 构建库

c++ - 使用 CMake 针对 live555 静态库进行编译

c++ - 从头文件自动链接静态库

c++ - 静态库中的外部变量链接失败

c++ - 为什么不能将 std::stol 转换为 std::function 对象?

c# - 对 MFC/.net/WPF 感到困惑

c++ - 为什么我的字符串转换为 float-conversion 不能用 istringstream 得到所有小数?

c++ - 如何将 .a 类型的静态库添加到 Visual Studio 项目中?

visual-c++ - MSVC - 通过 Makefile 创建静态库