gpt4 book ai didi

c++ - 在 VC11 中启用/禁用 SAFESEH?

转载 作者:可可西里 更新时间:2023-11-01 17:16:12 24 4
gpt4 key购买 nike

我为 zlib 1.2.7 创建了一个新的解决方案,将其设置为静态库,从 ./zlib/contrib/minizip 添加了必要的头文件和源文件,并让它进行编译美好的。然后我将它链接到 libpng(也作为静态库),它也可以正常编译。然后,我将 libpng 链接到我的图形引擎项目(也是一个静态库)...仍然没有错误。

但是一旦我将我的主要项目链接到我的图形引擎,我就会收到几个关于 crc32.objdeflate.objinflate 的 LNK2026 错误。 objd3dxplane.objd3dxvec4.obj 和其他 zlib/directx 相关模块。它告诉我它们来 self 的图形引擎库,所以我决定通过将 /SAFESEH:NO 添加到相应项目的链接器标志中来解决此问题。
注意:我应该声明所有项目都设置为面向 x86,而不是 x64。

然而,现在我得到的问题是:
警告 LNK4044:无法识别的选项“/SAFESEH”; ignored 这会在我的主项目中导致相同的 LINK2026 错误。
如果我打开 visual studio 命令提示符并键入 LINK/?,它会确认 /SAFESEH 是一个有效的链接器选项。当我使用 /SAFESEH (没有 ':NO') 时,我遇到了同样的错误,如果我完全省略它,那么我的主项目就会拒绝构建。

这是怎么回事?我该如何解决这个问题?

最佳答案

by adding /SAFESH:NO to my linker flags

嗯,你拼错了。也许在您的问题中,也许在链接器设置中,这种巧合往往可以解释为什么某些应该起作用的东西不起作用。

它无需输入即可使用,请支持这样做。 Project + Properties,Linker,Advanced,向下滚动右侧面板,“Image has Safe Exception Handlers”设置。使用组合框选择否。

关于c++ - 在 VC11 中启用/禁用 SAFESEH?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15982786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com