4

在我的 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 once明显存在的内容stdafx.h(尽管我认为这会修复警告),因为构建不使用 PCH。

这是我唯一的选择,还是我还能做些什么?我同时标记了,因为使用其中任何一个的解决方案(例如更改编译参数,以不同方式调用 Premake)都可以。

4

1 回答 1

0

好吧,在 C++ 中,你的主文件(带有你的 main 函数的文件int main(int argc, char * argv[])不应该有#pragma once,因为它只用于头文件。因此,您的主要功能似乎在stdafx.h不应该出现的时候出现。如果是,请将其放入 .cpp 文件中并在其中包含您的头文件。

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

于 2015-10-08T04:28:04.513 回答