簡體   English   中英

什么是正確的macOS vscode intellisense C ++包含標准庫的路徑?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM