Visual Studio 2010和MinGW的 [英] Visual Studio 2010 and MinGW

查看:1601
本文介绍了Visual Studio 2010和MinGW的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一帮老C code,这是我用MinGW的编译,并复制生成的库文件到VS C ++ DLL(C ++ / CLI)项目(命名为北向接口)目录中,并加入到连接器 - >输入文件设置。此字段为每个配置的内容被列在下面。

发布配置

<$p$p><$c$c>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

调试配置

<$p$p><$c$c>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 ++ - > code发生 - >运行时库多线程调试DLL(/ MDD),发布配置能够成功地编译和运行。有没有人遇到了类似的问题,有一个解决方案或者对如何解决此任何指导?


解决方案

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

I have a bunch of old C code, which I compiled using MinGW, and copied the generated library files to a VS C++ DLL (C++/CLI) Project (named NBIS) directory and added them to the Linker->Input Files setting. The content of this field for each configuration is listed below.

Release Configuration

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

Debug Configuration

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

When I compile and run using the debug configuration, it succeeds. When I compile and run using release configuration, I get this error: "Unhandled Exception: System.IO.FileLoadException: A procedure imported by 'NBIS.dll' could not be loaded."

If I change the release configuration's C/C++->Code Generation->Runtime Library to "Multi-threaded Debug DLL (/MDd)", the release configuration is able to successfully compile and run. Has anyone run into a similar issue and has a solution or any guidance on how to troubleshoot this?

解决方案

According to http://msdn.microsoft.com/en-us/library/xe4t6fc1(v=vs.71).aspx, "the Generate Debug Info (/DEBUG) option changes the defaults for the /OPT option from REF to NOREF and from ICF to NOICF." This could be removing symbols that you really need. Set it to NOREF and see what happens (Configuration Properties/Linker/Optimization page).

这篇关于Visual Studio 2010和MinGW的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆