使用CMake在VSCode上编译Qt项目

问题描述 投票:0回答:1

我的基本项目编译,仅继承了QMainWindow并显示它,但是所有包含均显示为红色,即使项目编译,我也遇到以下错误:

无法打开文件源“ QtWidgets / qtwidgetsglobal.h”(依赖于QMainWindow”)

VSCode intellisense也不起作用。

我从git repo下载了Qt-5.12。我进行了编译,然后将其安装在/usr/local/Qt-5.12/中。

我的c_cpp_properties.json:

    "configurations": [
    {
        "name": "Mac",
        "includePath": [
            "${workspaceFolder}/**",
            "/usr/local/Qt-5.12/lib",
            "/usr/local/Qt-5.12/lib/QtWidgets.framework/Headers",
            "/usr/local/Qt-5.12/lib/QtGui.framework/Headers",
            "/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers",
            "/usr/local/Qt-5.12/lib/QtCore.framework/Headers",
            "/usr/local/Qt-5.12/./mkspecs/macx-clang"
        ],
        "defines": [],
        "macFrameworkPath": [
            "/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks"
        ],
        "compilerPath": "/usr/bin/clang",
        "cStandard": "c11",
        "cppStandard": "c++17",
        "intelliSenseMode": "clang-x64",
        "configurationProvider": "vector-of-bool.cmake-tools"
    }
],
"version": 4
}

这是我的项目树:

enter image description here

我的顶级CMakeLists.txt

cmake_minimum_required(VERSION 3.10)

project(irc_client VERSION 1.0)

set(CMAKE_PREFIX_PATH "/usr/local/Qt-5.12/")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

find_package(Qt5 COMPONENTS Core Widgets REQUIRED)

add_subdirectory(sources)

我的资源/CMakeLists.txt:

add_executable(${PROJECT_NAME} main.cpp irc_client.cpp)

target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Widgets)
target_include_directories(${PROJECT_NAME} PUBLIC 
${irc_client_SOURCE_DIR}/headers/)

我如何使用Qt和CMAKE设置vscode以使intellisense工作?我在这里做错了什么?我找不到确切的问题,而且我知道QtCreator更好地编写Qt应用程序,但是我仍然想尝试弄清楚为什么它不起作用。因为它抱怨找不到包含,但是仍然可以编译...

谢谢

qt visual-studio-code cmake vscode-settings
1个回答
0
投票
好象我找到了解决方案。这是我的c_cpp_properties.json现在的样子:

{ "configurations": [ { "name": "Mac", "macFrameworkPath": [ "/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk\ /System/Library/Frameworks", "/System/Library/Frameworks" ], "intelliSenseMode": "clang-x64", "compilerPath": "/usr/bin/clang++", "cStandard": "c11", "cppStandard": "c++17", "compileCommands": "${workspaceFolder}/build/compile_commands.json", "browse": { "path": ["/usr/local/Qt-5.12/lib"], "limitSymbolsToIncludedHeaders": true, "databaseFilename": "${workspaceFolder}/.vscode/browse.vc.db" } } ], "version": 4 }

浏览部分完成了我认为的工作,并且我还添加了“ compileCommands”部分以指向我的cmake生成的编译命令文件。

到目前为止,在智能操作方面没有更多错误。

希望它为他人服务。

© www.soinside.com 2019 - 2024. All rights reserved.