- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想编译一个c++文件。我正在学习一个教程,在本教程中,文件是用 Visual Studio 编译的,但我没有。我想对 g++ 做同样的事情。在本教程中,使用 VS 中的/GS 和/SafeSEH。我想知道如何使用 g++ 编译器使用这些标志编译我的文件。
抱歉,如果我的问题很简单,我以前从未使用过 g++。对不起我的英语。谢谢。
最佳答案
首先要做的是:
/GS
实际上执行“缓冲区安全检查”,它试图自动检测缓冲区溢出并终止您的应用程序在可以利用此类溢出之前。
/SAFESEH
嵌入了所有结构化异常处理程序的列表在可执行文件中,以便操作系统可以检测是否已安装未经授权的处理程序以试图劫持执行。
现在回答你的问题:g++实现了一个类似于/GS的特性。您可以使用 -fstack-protector-all
编译您的代码以启用它。如果您好奇,可以查看 gcc 联机帮助页或使用 google 获取更多详细信息。 g++ 不实现结构化异常处理(它是 Microsoft 的扩展),因此 g++ 中没有与/SAFESEH 类似的内容。
好消息是,除非您正在处理的示例旨在演示/GS 和/SAFESEH 提供的额外保护,否则在没有它们的情况下编译代码应该根本不是问题。我敢打赌,您可以忽略这两个选项,只在没有它们的情况下进行编译,一切都会好起来的。
如果您有兴趣获得 Visual Studio,可以从 Microsoft 获得免费的“Express”版本。在此处查看网站:http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products
希望对您有所帮助。
关于visual-studio - g++ 上的 safeseh gs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13276692/
我正在尝试使用 boost::asio::spawn 函数,就像在 example 中一样,但它在 Release 中给我以下错误: libboost_context-vc120-mt-s-1_55.
我正在使用 Microsoft Visual Studio 2011 Professional Beta 我正在尝试运行我使用 cMake 和 Visual Studio 编译器编译的 OpenCV
我想编译一个c++文件。我正在学习一个教程,在本教程中,文件是用 Visual Studio 编译的,但我没有。我想对 g++ 做同样的事情。在本教程中,使用 VS 中的/GS 和/SafeSEH。我
我为 zlib 1.2.7 创建了一个新的解决方案,将其设置为静态库,从 ./zlib/contrib/minizip 添加了必要的头文件和源文件,并让它进行编译美好的。然后我将它链接到 libpng
我目前正在尝试用 C++ 创建一个编译器,它可以在运行时生成机器代码。但是,我目前正在尝试启用安全异常处理(使用/SAFESEH 进行编译)。我的自定义异常处理程序在 Debug模式下工作,但是当我在
我在构建示例 Visual C++ 项目时遇到此错误。首先我下载了3个示例项目,都解决同样的问题,打印出所有小于N的素数(你可能知道这些示例项目?)。我构建了纯C 项目,没有任何问题。但是当我尝试
我尝试在 ASLR 的链接器选项中使用 -dynamicbase -pie 和 -e_mainCRTStartup 但是当我在 ollydbg 中加载它时,它总是以 400000 加载 最佳答案 您可
使用 VS11 编译 libffi 会出现以下链接器错误 libffi\libffi-3.0.9\ms\Win32\Debug\ffi.dll : fatal error LNK1281: Unabl
我是一名优秀的程序员,十分优秀!