【发布时间】:2019-04-09 21:14:24
【问题描述】:
使用 VScode,如何解决这个错误?
#pragma once in main file [-Wpragma-once-outside-header]
更新: 在 VScode 中显示:
再次更新:
这是我在c_cpp_properties.json中的当前VScode设置
{
"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
}
【问题讨论】:
-
我实际上怀疑你正在编译你的头文件。通常,当弹出警告时,您应该修复代码而不是禁用该警告。另请注意,编译警告不是必需的。对于编译警告,您应该发布构建日志。
-
您在没有构建的情况下收到此消息吗?那么这是VSCode中的一个错误。如果在构建时得到它,那么您尝试构建头文件而不是源文件(应该
#include头文件)。 -
VScode 在构建之前给出错误。这是 VScode 正在运行以构建的命令...
g++ -std=c++11 main.cpp -o main -
那么这个错误可能来自
"intelliSenseMode": "clang-x64",请参阅Is is possible to disable this warning in clang? warning: #pragma once in main file,如果确实如此,那么可能值得提交一个错误报告。或者只是使用合适的 IDE。 -
一个从长远来看好的简单答案是不要使用
#pragma once——它不是标准的,因为它不能在所有系统上正确实现。
标签: c++ visual-studio-code vscode-settings