macOS + Qt + Intellisense 上的 Visual Studio Code

Posted

技术标签:

【中文标题】macOS + Qt + Intellisense 上的 Visual Studio Code【英文标题】:Visual Studio Code on macOS + Qt + Intellisense 【发布时间】:2019-10-27 07:40:19 【问题描述】:

Visual Studio Code 得到以下错误:

cannot open source file "QtWidgets/qtwidgetsglobal.h" (dependency of "QApplication")C/C++(1696)

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

我在包含qtwidgetsglobal.h的路径中有这个目录:

/usr/local/Cellar/qt/5.13.1/lib/QtWidgets.framework/Headers

还有一件事:

目录/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 的任何建议。

【问题讨论】:

你看过documentation 是的,所有需要的包含都应该取自 compiler-commands.json。除了 Qt,我的另一个部门工作正常。 【参考方案1】:

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

因此在您的c_cpp_properties.json 中添加该行

"compileCommands": "$workspaceFolder/build/compile_commands.json",

并删除

"configurationProvider": "ms-vscode.cmake-tools",

完整的配置文件应该是这样的


    "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

【讨论】:

以上是关于macOS + Qt + Intellisense 上的 Visual Studio Code的主要内容,如果未能解决你的问题,请参考以下文章

Qt 交叉编译 Linux -> MacOS 无法链接到 Qt 库

MacOS 上的 Qt .nib 问题

Qt - 在 macOS 上动态更改应用程序标题 [重复]

Qt 在 Dock 中显示进度条 (macOS)

如何使用自制软件在 macOS 上安装 qt4?

Qt5 和 MacOS X