透明水晶 2023-05-24 11:03 采纳率: 96.8%
浏览 6
已结题

VC++ | VS2017编译工程报错-20230524

VC++ | VS2017编译工程报错


1>Win32vc.obj : error LNK2026: 模块对于 SAFESEH 映像是不安全的。
1>Release\IDTools.exe : fatal error LNK1281: 无法生成 SAFESEH 映像。
1>已完成生成项目“IDTools.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

LNK2026 模块*对于 SAFESEH 映像是不安全的“原因以及解决方法

  • 写回答

1条回答 默认 最新

  • 掩月天权 2023-05-24 11:10
    关注

    这个错误是由于工程中某一个源文件被编译成了不支持SAFESEH的目标文件,导致最终链接生成的可执行文件也无法使用SAFESEH。要解决这个问题,您可以采取以下两种方法:

    1. 在项目属性中禁用SAFESEH
      打开项目属性(右键点击项目,选择“属性”),依次展开链接器(Linker)->高级(Advanced)选项卡,在其中将“启用安全异常处理(Enable Safe Exception Handling)”选项设置为否(No),然后重新编译工程即可。

    2. 编译所有源文件时启用SAFESEH
      在工程中启用SAFESEH的方法是,在所有源文件中都添加如下代码:

    #pragma set(SEH, on)
    

    或者在项目属性中,将C/C++ -> 代码生成(Code Generation)选项页中的安全检查(Security Check)选项设置为“启用快速失败模式”(/GS-),并重新编译工程即可。

    请注意,如果您选择第一种方法禁用SAFESEH,则可能会导致可执行文件存在安全漏洞。因此,建议您尽量使用第二种方法启用SAFESEH,并针对代码中的每一个源文件进行检查和调整,确保其能够兼容SAFESEH。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月1日
  • 已采纳回答 5月24日
  • 创建了问题 5月24日

悬赏问题

  • ¥20 易康econgnition精度验证
  • ¥15 线程问题判断多次进入
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致