2011-03-09 144 views
1

我正在尝试为C++使用M4RI包。我下载了M4RI的源代码并运行了打包的VS项目。它创建了m4ri.dll(没有.lib文件)。 现在我想将这个dll文件“添加”到不同的VS2010 C++项目中,以便我可以使用M4RI库。在Visual Studio 2010中链接DLL C++

我已经#include m4ri.h,但仍然出现链接错误。如何将此参考添加到VS项目?

在此先感谢。

回答

1

我的解决方案: 我不熟悉C和C++之间的差异,但这似乎是问题所在。为了让M4RI库建立,我不得不明确告诉它用C++编译(属性 - > C/C++ - >高级 - >编译为:“编译为C++”)

我不确定这是否造成我的问题,或者如果它不相关。 为了能够使用库,我不得不修改“m4ri.h”来删除#ifdef __cplusplus部分。只要这些预编译器指令被删除,我就可以轻松链接到M4RI。

如果有人能解释,我将不胜感激为什么这解决了这个问题。

谢谢!

+0

我还应该注意我对原始M4RI VS项目所做的其他更改:我将它从一个DLL更改为一个静态库。 – Eric 2011-03-10 19:52:24

+0

我向开发人员报告这些问题,以便他们将在未来的版本中修复VS。问题是GCC和MVS编译器不兼容。为了完全编译m4ri库,我必须强制它编译为C++,这意味着我需要在m4ri.h中注释掉“extern C” – Eric 2011-03-11 03:03:19

0

链接错误可能来自许多事情。你的链接错误是否与m4ri有关?使用dll,通常会得到一个应该包含在项目中的导出库。