gpt4 book ai didi

c++ - GCC 可以配置为忽略#pragma 指令吗?

转载 作者:行者123 更新时间:2023-11-30 03:19:05 24 4
gpt4 key购买 nike

我们正在使用以下编译命令在沙箱环境中编译和运行用户提交的 C++ 程序:

g++ -std=gnu++11 -O2 -o program.exe program.cpp
但是,用户可以使用 pragma 指令覆盖编译标志。例如,可以使用以下代码覆盖优化级别:
#pragma GCC optimize("Ofast")
我们无法控制提交编译的源代码,但我们需要防止编译选项被覆盖。

有没有办法用 GCC 忽略 pragma 指令?

最佳答案

快速浏览一下手册页,答案是“否”,gcc 没有“禁用编译指示”功能。

作为一个真正荒谬的解决方法,您可能会简单地要求所有条目完全省略字符串 pragma(对 block the _Pragma operator 也不区分大小写),拒绝任何违反该要求的内容。任何更复杂的事情都需要编写您自己的 C 源代码解析器,我怀疑这是否值得。考虑到您可以使用预处理器玩的标记串联技巧,我什至不确定这是否会起作用(我正在等待演示此类利用的评论)。

关于c++ - GCC 可以配置为忽略#pragma 指令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54100634/

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