使用 Pragma 删除 GCC 中的标志
我想删除项目中特定文件的编译器标志。如何使用#pragma 来做到这一点?
I want to remove a compiler flag for a praticular file in my project. How to do this using #pragma
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
抱歉,这已经晚了,但我刚刚在我的项目中遇到了同样的问题。
我找不到 #pragma 来修改编译器标志列表,但我可以使用 GNU Make 的功能来基于每个目标修改 make 变量。
我的一个文件花了很长时间才用
-fvar-tracking-assignments
进行编译(在几个版本之前已添加到 -O2 中)。我正在寻找一种方法来关闭一个文件的该功能;在(徒劳地)寻找适当的编译指示后,我只是将这一行添加到我的 makefile 中,以在编译和链接这些特定文件时修改CXXFLAGS
:希望这对其他人有帮助!
Sorry that this is late, but I just ran into the same issue on my project.
I couldn't find a #pragma to modify the list of compiler flags, but I could use GNU Make's ability to modify make variables on a per-target basis.
One of my files was taking forever to compile with
-fvar-tracking-assignments
(which was added to -O2 a few releases back). I was looking for a way to turn that off for one file; after looking (in vain) for an appropriate pragma, I simply added this line to my makefile to modifyCXXFLAGS
when compiling and linking those specific files:Hopefully this will be helpful to others!
仅可以使用
#pragma
覆盖控制警告的标志,请参阅 诊断编译指示文档页面。例如,您可以这样做:
让 GCC 忽略由不匹配的格式字符串生成的警告。
Only flags that control warnings can be overridden using
#pragma
, see the diagnostic pragmas documentation page.For instance, you could do:
To make GCC ignore the warnings generated by mismatched formatting strings.
我不确定 gcc 是否有这样的编译指示。我在 gcc 页面上找不到任何编译指示。
如果您下次问与 gcc 相关的问题,也将其标记在 gcc 下。我会标记它,但我不能。在 gcc 下标记会得到更多回复。
I'm not sure if gcc has such pragmas. I can't find any on the gcc page for pragmas.
If you are asking a question related to gcc next time, tag it under gcc as well. I would tag it but I can't. Tagging under gcc would get you many more responses.