带有GCC/GMake的预编译头导致“pragma”警告(Premake)

带有GCC/GMake的预编译头导致“pragma”警告(Premake),gcc,premake,c++,gnu-make,Gcc,Premake,C++,Gnu Make,在我的Premake文件中,我会: pchheader("../../"..dir_root.."stdafx.h") 我发现这至少部分有效。(Windows上ICC的调用有些不同。) 编译时,我只收到一条警告: stdafx.h ../../mylibrary/stdafx.h:1:9: warning: #pragma once in main file #pragma once ^ 我相信这来自于GCC编译预编译头(就像它是某种主文件一样)。所以,这个警告(有点?)

在我的Premake文件中,我会:

pchheader("../../"..dir_root.."stdafx.h")
我发现这至少部分有效。(Windows上ICC的调用有些不同。)

编译时,我只收到一条警告:

stdafx.h
../../mylibrary/stdafx.h:1:9: warning: #pragma once in main file
 #pragma once
         ^
我相信这来自于GCC编译预编译头(就像它是某种主文件一样)。所以,这个警告(有点?)是有道理的

我不想删除
#pragma一次,因为构建没有使用PCH,这显然在
stdafx.h
中(尽管我认为这会修复警告)


这是我唯一的选择,还是我还能做些什么?我在标记这两者,因为使用一个解决方案(例如,改变编译参数,调用不同的预制作)会很好。

< P>,在C++中,主文件(具有主函数的文件,<代码> int main(int ARCC,char *ARGV[]/COD>)不应该有一次
#pragma
,因为它只用于头文件。因此,在不应该的情况下,您的主函数似乎在
stdafx.h
中。如果是,请将其放在.cpp文件中,并将头文件包含在那里


只是一个警告,所以不要烦恼。

也是,你使用VisualStudio吗?如果是这样,生成一个空的C++项目而不是Win32应用程序。当生成用于<代码> pDAFX·h >代码>的PCH时,警告正好发生。问题是它生成了一个警告,就像它是一个翻译单元。类型(影响运行时和目标,而不是PCHes)。