Moc*_*han 9 c++ g++ pragma precompiled-headers
我创建了一个头文件。一些简单的如下。
#pragma once
#include <iostream>
template<typename T>
void say(T t) {
    std::cout << t << std::endl;
}
然后用于g++创建gch带有g++ hello.h. 它给了我这个警告->
pch.h:2:9: warning: #pragma once in main file
    2 | #pragma once
      |         ^~~~
但是gch创建的文件和预编译的头文件工作正常。如果我使用标题守卫,这个错误就会消失。
我在这里做错了吗?
你没有做错任何事;这是之前在问题跟踪器中提到的实施质量问题(但是,据我所知,目前没有计划改变这种行为)。
在 Clang 中,您可以关闭针对特定编译器调用的警告(使用-Wno-pragma-once-outside-header);在海湾合作委员会中,您现在只需要微笑并忍受它。