解决VS2013″Error lnk2026: module unsafe for safeseh image”

visual_studio_2013_logo

今天好奇就把OpenSees的源代码下载下来,编译了一下,看看能不能也编译出一个像样的exe程序,但是不用想都知道,肯定是失败了,毕竟程序那么复杂,所涉及的模块也是非常的多,肯定不是轻轻一点编译就能运行的,但是还是略有一点收获。

主要是在编译器链接的过程中出现了”Error lnk2026: module unsafe for safeseh image”的问题,翻译成中文就是”链接器工具错误 LNK2026 XXX模块对于 SAFESEH 映像是不安全的”,这个问题,我去百度了一下,发现好像在VS2012之后是普遍存在的,需要进行一下设置,具体解决方法如下:

在项目的“属性页”中找到“链接器”标签,然后点击“命令行”将/SAFESEH:NO添加到“附加选项”的框中,点击应用即可。

具体的原因,在国内基本上是找不到的,我去国外的网站上找了一下,发现具体的原因如下:

This happens when you link an .obj or .lib that contains code created by an earlier version of the compiler. Which of course would be common if you downloaded a binary for opencv_ffmpeg instead of the source. You can turn the linker option off but then you’ll still have a CRT version incompatibility that can byte. Rebuild the library from source. – Hans Passant May 15 at 13:01

大致的原因就是在链接.lib和.obj文件的时候,由于文件是采用的旧版本的编译器生成,导致一些协调性的问题。

在stackoverflow上,还有另外的解决办法,如下所示:

VS2013 problem

VS2013 problem

这个也是一个解决的办法,请大家自行对照英文进行修改,程序员应该懂英文的吧,不懂英文也用不到VS2013了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Are you human? Click the Banana...