使用VS2012编译libffi失败并出现致命错误LNK1281:无法生成SAFESEH映像

时间:2013-01-31 16:08:07

标签: c++ visual-studio visual-c++ visual-studio-2012 libffi

使用VS11编译libffi会产生以下链接器错误

libffi\libffi-3.0.9\ms\Win32\Debug\ffi.dll : fatal error LNK1281: Unable to generate SAFESEH image.

同一个项目正在编译VS10,但在使用VS2012自动升级后,它开始提供链接器错误

MSDN中的解释过于神秘且缺乏帮助

我可能会使用/SAFESEH:NO进行重建,但我不确定其含义。

请告知可能出现的问题。

1 个答案:

答案 0 :(得分:20)

没有SAFESEH的主要含义是您的应用程序不会被Windows 8商店或Windows 8 desktop certification接受。如果这不是您的问题,请随时使用/SAFESEH:NO

documentation说:

  

链接器无法生成映像的最常见原因是链接器的一个或多个输入文件(模块)与安全异常处理程序功能不兼容。模块与安全异常处理程序不兼容的一个常见原因是因为它是使用以前版本的Visual C ++中的编译器创建的。

项目升级到VS2012是否可能将设置更改为/SAFESEH:YES。也许你从来没有使用SAFESEH构建。