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

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

问题描述

我有一堆旧C代码,我使用MinGW编译,并将生成的库文件复制到VS C ++ DLL(C ++ / CLI)项目(名为NBIS)目录,并将它们添加到链接器 - >输入文件设置。


$ b p $ p> liban2k.a; libbozorth3.a; libcblas.a; libclapck.a; libf2c.a; libfet.a; libfft.a; libihead.a; libimage.a; libioutil.a; libjpegb.a; libjpeg.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

调试配置 b

  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,看看会发生什么(配置属性/链接器/优化页面)。


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天全站免登陆