2017-08-05 205 views
3

我在macOS Sierra上使用Visual Studio Code 1.14.2,并且安装了Microsoft C/C++ ms-vscode.cpptools扩展,但在设置包含路径时遇到问题,无法生成错误并返回,从而无法通过IntelliSense正确检查标准库头到'Tag Parser'机制。什么是正确的macOS vscode intellisense C++包含标准库的路径?

默认c_cpp_properties.json包含此vscode版本以下:

{ 
    "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>有下划线。盘旋在它指出:

文件: '文件:///path/to/vscode.cc' 严重性: '信息' 消息:“检测到的#include错误。请更新您的includePath。该翻译单元的智能感知功能(/path/to/vscode.cc)将由标签解析器提供。' 在: '1,1' 源: ''

文件: '文件:///path/to/vscode.cc' 严重性: '信息' 消息:“无法打开源文件‘endian.h’(‘异常’的依赖)” 在:“1,1” 来源:“”

我做了搜索我的文件系统为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 

有谁知道这个问题的正确解决办法是什么呢?

+0

我看到https://stackoverflow.com/questions/37522462/visual-studio-code-includepath和它的评论,但尽管在那里的反应,我仍然看到了同样的问题。我尝试将建议的路径添加到包含路径列表中,但没有帮助。 – robswain

回答

3

原来这是IntelliSense引擎中的配置错误。 Mac标题预计符号__LITTLE_ENDIAN__被定义,它不是。我们在扩展的最新更新中纠正了这个问题,因此不需要再向endian.h添加路径。

相关问题