使用 Visual Studio 创建的静态库在与代码块一起使用时显示对 Myfunction 的未定义引用

Static Library Created With Visual Studio Shows Undefined Reference To Myfunction when used with codeblocks

本文关键字:显示 未定义 Myfunction 一起 引用 代码 创建 Studio Visual 静态 使用      更新时间:2023-10-16

嗨,我使用 Visual Studio 2008 创建了一个静态库Microsoft并且还创建了一个标头,其中包含该库中编写的函数的所有函数原型,但是当我链接并尝试使用代码块编译它时,它显示了对"MyFunction"的未定义引用,但我包含包含其原型的标头并链接了库。 为什么它不起作用?

代码(库):

int add(int x,int y)
{
      return x+y;
}

代码(标题):

int add(int,int);

所有这些都在Visual Studio下工作,但在代码块下则不然。提前致谢...对不起,我是编程新手。

Visual Studio生成的静态库通常不能被MinGW使用,反之亦然。造成这种情况的原因有很多,但最常见的是静态库与生成库的编译器的C++运行时相关联。并且您正在尝试与使用不同运行时的编译器链接。

您报告的问题听起来更像是名称管理不匹配的问题,但即使您解决了名称管理问题,也可能会遇到其他问题。

显而易见的解决方案是构建静态库的多个版本,每个版本对应您使用的每个编译器。