macOS 上的 Visual Studio Code + Qt + Intellisense

Dan*_*iil 4 c++ qt cmake visual-studio-code

Visual Studio Code 出现以下错误:

cannot open source file "QtWidgets/qtwidgetsglobal.h" (dependency of "QApplication")C/C++(1696)
Run Code Online (Sandbox Code Playgroud)

我有一个 CMake 项目,已成功编译和构建,但 Intellisense 似乎不起作用。

我的路径中有这个目录,其中包含qtwidgetsglobal.h

/usr/local/Cellar/qt/5.13.1/lib/QtWidgets.framework/Headers
Run Code Online (Sandbox Code Playgroud)

还有一件事:

目录/usr/local/Cellar/qt/5.13.1/lib/QtWidgets.framework 包含目录Headers和奇怪的可执行文件,QtWidgets我被认为包含在内,-I/usr/local/Cellar/qt/5.13.1/lib/QtWidgets.framework因为 QtCreator 两者都有 /usr/local/Cellar/qt/5.13.1/lib/QtWidgets.framework/usr/local/Cellar/qt/5.13.1/lib/QtWidgets.framework/Headers 但没有任何作用。

实际上,Visual Studio Code 似乎会忽略两个目录 /usr/local/Cellar/qt/5.13.1/lib/QtWidgets.framework/usr/local/Cellar/qt/5.13.1/lib/QtWidgets.framework/Headers 指定的情况。

有关如何启用 Intellisense 与 Visual Studio Code 配合使用的任何建议。

小智 5

您需要使用compileCommands而不是cake-toolsconfigurationProvider。

因此在你c_cpp_properties.json添加行

"compileCommands": "${workspaceFolder}/build/compile_commands.json",
Run Code Online (Sandbox Code Playgroud)

并删除

"configurationProvider": "ms-vscode.cmake-tools",
Run Code Online (Sandbox Code Playgroud)

完整的配置文件应该看起来像这样

{
    "configurations": [
        {
            "name": "Mac",
            "compilerPath": "/usr/bin/clang",
            "compileCommands": "${workspaceFolder}/build/compile_commands.json",
            "browse": {
                "limitSymbolsToIncludedHeaders": true
            },
            "macFrameworkPath": [
                "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks"
            ],
            "cStandard": "c11",
            "intelliSenseMode": "clang-x64",
            "cppStandard": "c++14"
        }
    ],
    "version": 4
}
Run Code Online (Sandbox Code Playgroud)