我创建了一个头文件。一些简单的如下。
#pragma once
#include <iostream>
template<typename T>
void say(T t) {
std::cout << t << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
然后用于g++创建gch带有g++ hello.h. 它给了我这个警告->
pch.h:2:9: warning: #pragma once in main file
2 | #pragma once
| ^~~~
Run Code Online (Sandbox Code Playgroud)
但是gch创建的文件和预编译的头文件工作正常。如果我使用标题守卫,这个错误就会消失。
我在这里做错了吗?
使用 VScode,如何修复此错误?
#pragma once in main file [-Wpragma-once-outside-header]
Run Code Online (Sandbox Code Playgroud)
更新: 在 VScode 中显示:
再次更新:
这是我当前的 VScode 设置c_cpp_properties.json
{
"configurations": [
{
"name": "Mac",
"includePath": ["${workspaceFolder}/**"],
"defines": [],
"macFrameworkPath": [
"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks"
],
"compilerPath": "/usr/bin/clang",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}
Run Code Online (Sandbox Code Playgroud)