c++ - Visual Studio 2010 和 MinGW

标签 c++ c visual-studio-2010 dll mingw

我有一堆旧的C代码,我使用MinGW编译它们,并将生成的库文件复制到VS C++ DLL(C++/CLI)项目(名为NBIS)目录中,并将它们添加到链接器->输入文件中环境。下面列出了每个配置的该字段的内容。

发布配置

liban2k.a;libbozorth3.a;libcblas.a;libclapck.a;libf2c.a;libfet.a;libfft.a;libihead.a;libimage.a;libioutil.a;libjpegb.a;libjpegl.a;libmindtct.a;libmlp.a;libnfiq.a;libnfseg.a;libpca.a;libpcautil.a;libutil.a;libwsq.a;libgcc.a;libmingwex.a;libmoldname.a;libmsvcr100.a

调试配置

liban2k.a;libbozorth3.a;libcblas.a;libclapck.a;libf2c.a;libfet.a;libfft.a;libihead.a;libimage.a;libioutil.a;libjpegb.a;libjpegl.a;libmindtct.a;libmlp.a;libnfiq.a;libnfseg.a;libpca.a;libpcautil.a;libutil.a;libwsq.a;libgcc.a;libmingwex.a;libmoldname.a;libmsvcr100d.a

当我使用调试配置编译并运行时,它成功了。当我使用发布配置进行编译和运行时,出现以下错误:“未处理的异常:System.IO.FileLoadException:无法加载‘NBIS.dll’导入的过程。”

如果我将发布配置的C/C++->代码生成->运行时库更改为“多线程调试DLL(/MDd)”,则发布配置能够成功编译并运行。有没有人遇到类似的问题并有解决方案或任何有关如何解决此问题的指导?

最佳答案

根据http://msdn.microsoft.com/en-us/library/xe4t6fc1(v=vs.71).aspx ,“生成调试信息 (/DEBUG) 选项将/OPT 选项的默认值从 REF 更改为 NOREF,从 ICF 更改为 NOICF。”这可能会删除您真正需要的符号。将其设置为 NOREF 并查看会发生什么(配置属性/链接器/优化页面)。

关于c++ - Visual Studio 2010 和 MinGW,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9673252/

相关文章:

c++ - 模板结构和模板成员函数之间的名称冲突

c - 返回 char 数组的 C 函数与使用 2 个 char 数组的函数

c++ - 关于声明/释放 IplImages 的两种情况

windows - 下拉组合框时的工具提示

c++ - 删除二叉搜索树的 fcn

c++ - QWidgetAction 在 trigger() 之后保持可见

c++ - 哪些 C++ 随机数引擎具有 O(1) 丢弃函数?

将 char 转换为 LPCWSTR

c++ - 我们如何添加备用节点数据?

c++ - 解决 lambda 表中的 VS2010 错误?