使用 Pragma 删除 GCC 中的标志

发布于 2024-09-08 07:29:35 字数 44 浏览 3 评论 0原文

我想删除项目中特定文件的编译器标志。如何使用#pragma 来做到这一点?

I want to remove a compiler flag for a praticular file in my project. How to do this using #pragma?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

青芜 2024-09-15 07:29:35

抱歉,这已经晚了,但我刚刚在我的项目中遇到了同样的问题。

我找不到 #pragma 来修改编译器标志列表,但我可以使用 GNU Make 的功能来基于每个目标修改 make 变量。

我的一个文件花了很长时间才用 -fvar-tracking-assignments 进行编译(在几个版本之前已添加到 -O2 中)。我正在寻找一种方法来关闭一个文件的该功能;在(徒劳地)寻找适当的编译指示后,我只是将这一行添加到我的 makefile 中,以在编译和链接这些特定文件时修改 CXXFLAGS

ObtuseObj.o ObtuseObjTest.o ObtuseObjTest : CXXFLAGS += -fno-var-tracking-assignments

希望这对其他人有帮助!

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 modify CXXFLAGS when compiling and linking those specific files:

ObtuseObj.o ObtuseObjTest.o ObtuseObjTest : CXXFLAGS += -fno-var-tracking-assignments

Hopefully this will be helpful to others!

审判长 2024-09-15 07:29:35

仅可以使用 #pragma 覆盖控制警告的标志,请参阅 诊断编译指示文档页面。

例如,您可以这样做:

#pragma GCC diagnostic ignored "-Wformat"

让 GCC 忽略由不匹配的格式字符串生成的警告。

Only flags that control warnings can be overridden using #pragma, see the diagnostic pragmas documentation page.

For instance, you could do:

#pragma GCC diagnostic ignored "-Wformat"

To make GCC ignore the warnings generated by mismatched formatting strings.

桃扇骨 2024-09-15 07:29:35

我不确定 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文