您好我使用Microsoft Visual Studio 2008创建了一个静态库,并且还创建了一个包含该库中编写的函数的所有函数原型的头文件,但是当我链接并尝试使用代码块编译它时,它显示未定义的引用'MyFunction'但我已经包含了包含其原型的标题并链接了库。为什么不起作用?
代码(库):
int add(int x,int y)
{
return x+y;
}
代码(标题):
int add(int,int);
所有这些都在Visual Studio下工作,但不在代码块下。 在此先感谢...对不起,我是编程新手..
答案 0 :(得分:0)
Visual Studio生成的静态库通常不能被MinGW使用,反之亦然。这有多种原因,但最常见的是静态库与生成库的编译器的C ++运行时链接。并且您正在尝试链接使用不同运行时的编译器。
您报告的问题听起来更像是错误匹配的名称管理,但即使您解决了名称错误,您也可能会遇到其他问题。
显而易见的解决方案是构建静态库的多个版本,每个版本对应一个您使用的编译器。