使用GCC/GMake预编译头文件导致' pragma '警告(Premake)

Precompiled Headers With GCC/GMake Causing `pragma` Warning (Premake)

本文关键字:pragma 警告 Premake GMake GCC 编译 文件 使用      更新时间:2023-10-16

在我的预制文件中输入:

pchheader("../../"..dir_root.."stdafx.h")

我发现这至少部分有效。(Windows上的ICC调用略有不同。)

在编译时,我只得到一个警告:
stdafx.h
../../mylibrary/stdafx.h:1:9: warning: #pragma once in main file
 #pragma once
         ^

我相信这来自GCC编译预编译的头文件(就好像它是某种主文件一样)。所以,这个警告是(kind ?)合理的。

我宁愿不删除#pragma once,这显然是在stdafx.h(尽管我认为这会修复警告),因为构建不使用PCH。

这是我唯一的选择吗,还是我还有别的办法?我将此标记为gcc和premake,因为使用任何一种解决方案(例如更改编译参数,以不同的方式调用premake)都可以。

好吧,在c++中,你的主文件(文件与你的主要功能,int main(int argc, char * argv[])不应该有#pragma once,因为它只是头文件。所以似乎你的主要功能是在stdafx.h,当它不应该是。如果是,把它放在一个。cpp文件中,并包含你的头文件。

这只是一个警告,所以不要担心。