在Visual Studio中使用在Linux / MinGW中编译的libs / dll

时间:2009-08-18 03:11:07

标签: c++ visual-c++ gcc mingw cross-compiling

更新:我在编译时收到此警告:找到具有不同属性的多个'.text'部分

您好,

我使用MinGW交叉编译器在Linux中编译了一些库(.a和.dll)。我可以在Visual Studio 2008中成功链接它们(.a)。但是,当它运行时(使用.dll),它会终止,地址指针指向空的内存地址。

是否有办法/列表可以让我在VC08中成功使用这些库?

交叉编译器生成

  1. *。dll.a
  2. *。DLL
  3. 由于

2 个答案:

答案 0 :(得分:7)

找到它。

http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs

您必须有一个def文件并使用VC的lib工具生成导入库。

答案 1 :(得分:3)

听起来我和双方没有使用相同的调用约定,这意味着导出的dll函数的定义方式存在问题。

到目前为止,最简单的方法是通过定义导出的函数将函数定义为 extern“C”,如下所示:

extern "C"
{
  int  MyExportedFunction(char *buffer, int length);
  void MyOtherFunction();
};