使用预编译头文件时,如何在 GCC 中避免 `#pragma once in main file`?
How can I avoid `#pragma once in main file` in GCC when using precompiled headers?
这是一个最小的例子:
// pch.h
#pragma once
#include <iostream>
而我运行:
g++ -x c++-header -o pch.h.gch -c pch.hpp
当我运行命令时,我得到
pch.h:1:9: warning: #pragma once in main file
1 | #pragma once
|
据我了解,此行为是 GCC 在阅读了他们的 bugzilla 错误跟踪器后有意为之;所以,这不是一个错误,而是一个功能。
如何禁用此警告?是否有我可以通过将其添加为 pragma 语句来抑制的警告编号或名称:
#pragma GCC diagnostic ignored "-Wcan-i-set-something-here"
From my understanding, this behavior is intended by GCC
据我所知,这是一个错误。
How can I disable this warning?
不幸的是,您似乎不能,因为警告不能由选项控制。在我看来,这也是一个错误。
您可以使用头部防护而不是 #pragma once
来规避此问题。
这是一个最小的例子:
// pch.h
#pragma once
#include <iostream>
而我运行:
g++ -x c++-header -o pch.h.gch -c pch.hpp
当我运行命令时,我得到
pch.h:1:9: warning: #pragma once in main file
1 | #pragma once
|
据我了解,此行为是 GCC 在阅读了他们的 bugzilla 错误跟踪器后有意为之;所以,这不是一个错误,而是一个功能。
如何禁用此警告?是否有我可以通过将其添加为 pragma 语句来抑制的警告编号或名称:
#pragma GCC diagnostic ignored "-Wcan-i-set-something-here"
From my understanding, this behavior is intended by GCC
据我所知,这是一个错误。
How can I disable this warning?
不幸的是,您似乎不能,因为警告不能由选项控制。在我看来,这也是一个错误。
您可以使用头部防护而不是 #pragma once
来规避此问题。