[英]What are the correct macOS vscode intellisense C++ include paths for the standard library?
我在macOS Sierra上使用Visual Studio Code 1.14.2并安装了Microsoft C / C ++ ms-vscode.cpptools
扩展,但是在设置包含路径以使IntelliSense正确检查标准库头时没有产生错误,回到'Tag Parser'机制。
对于此vscode版本,缺省c_cpp_properties.json
包含以下内容:
{
"configurations": [
{
"name": "Mac",
"includePath": [
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1",
"/usr/local/include",
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/include",
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
"/usr/include",
"${workspaceRoot}"
],
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1",
"/usr/local/include",
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/include",
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
"/usr/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
...
}
例如,使用简单的C ++文件,例如:
#include <exception>
int main() {
return 0;
}
#include <exception>
带有下划线。 悬停在它上面说:
file:'file:///path/to/vscode.cc'严重性:'信息'消息:'#include错误检测到。 请更新您的includePath。 Tag翻译器将提供此翻译单元的智能感知功能(/path/to/vscode.cc)。 at:'1,1'来源:''
和
file:'file:///path/to/vscode.cc'严重性:'Info'消息:'无法打开源文件“endian.h”(依赖于“exception”)'at:'1,1'source: “”
我搜索了我的文件系统endian.h
。 调整看起来与主机开发实际相关的可能性(即放弃iOS / WatchOS /等):
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/i386/endian.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/machine/endian.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/i386/endian.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/machine/endian.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/i386/endian.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/machine/endian.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/i386/endian.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/machine/endian.h
/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/i386/endian.h
/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/machine/endian.h
/usr/include/i386/endian.h
/usr/include/machine/endian.h
有谁知道这个问题的正确解决方案是什么?
这竟然是IntelliSense引擎中的配置错误。 Mac标头需要定义符号__LITTLE_ENDIAN__
,而不是。 我们已在最新的扩展更新中更正了此问题,因此无需再添加到endian.h的路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.