目录
编译cpp
编译qt
借用插件
手撸(建议,避免很多未知错误)
踩过的坑
编译cpp
- vscode安装2个插件,extension pack自动包了下面3个
- 通过命令窗口code .打开代码目录,或者添加cl.exe路径到path,以及c++需要的include和lib
//在Path中添加cl.exe所在文件夹路径。若未找到,直接VS的安装目录下搜索cl.exe即可 D:\enviroment\vs_2022\VC\Tools\MSVC\14.35.32215\bin\Hostx64\x64 //在系统变量中新建变量INCLUDE,添加cl.exe的包含目录 D:\enviroment\vs_2022\VC\Tools\MSVC\14.35.32215\include C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\ucrt C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\winrt //在系统变量中新建变量LIB,添加cl.exe的库目录 D:\enviroment\vs_2022\VC\Tools\MSVC\14.35.32215\lib\x64 C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\um\x64 C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\ucrt\x64
- F5选cl.exe即可
编译qt
借用插件
安装插件
填写qt安装路径,然后创建qt项目
选择套件
选择cmake
创建好之后在下方状态栏选择kit
如果mingw,则需要把D:\enviroment\qt_5.15.2\Tools\mingw810_64\bin添加到环境变量后重新扫描添加即可。
如果msvc,选择amd64即可。
手撸(建议,避免很多未知错误)
文件结构如下
全部创建好之后,配置launch和cmakelists
launch就是改下program和env
{"name": "cl.exe - 生成和调试活动文件","type": "cppvsdbg","request": "launch","program": "${command:cmake.launchTargetPath}","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [{"name": "PATH","value": "d:/environment/qt_5.15.2/5.15.2/msvc2019_64/bin"}],"console": "integratedTerminal","preLaunchTask": "C/C++: cl.exe 生成活动文件"}
cmakelists则要注意把qrc也加到编译列表,且含q_object的头文件要先预编译成moc,所以这俩货都要扔进add_executable里
cmake_minimum_required(VERSION 3.16)project(demo)# 定义 CMAKE_BUILD_TYPE 变量
set(CMAKE_BUILD_TYPE Debug)# 在项目中使用 CMAKE_BUILD_TYPE 变量
if(CMAKE_BUILD_TYPE STREQUAL "Debug")message("Debug build")
else()message("Release build")
endif()set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)# 声明目标文件名称
set(TARGETNAME demoApp)#设置工程包含当前目录
set(CMAKE_INCLUDE_CURRENT_DIR ON)# 设置自动生成moc文件,AUTOMOC打开可以省去QT5_WRAP_CPP命令
SET(CMAKE_AUTOMOC ON)# 设置自动生成ui.h文件,AUTOUIC打开可以省去QT5_WRAP_UI命令
SET(CMAKE_AUTOUIC ON)
list(APPEND CMAKE_AUTOUIC_SEARCH_PATHS "form")# 【optional】设置自动处理.qrc文件
SET(CMAKE_AUTORCC ON)# 指定Qt依赖项
find_package(Qt5 COMPONENTS Core Gui Widgets QuickWidgets WebEngineWidgets REQUIRED)file(GLOB HEAD_FILES "./inc/*.h")
aux_source_directory(./src SRC_FILES)# #设置自动生成UI文件夹 (因为设置了autouic,所以uic不用放进add_executable里面,除非你想在生成的sln里看到它)
# file(GLOB UI_FILES "./form/*.ui")
# QT5_WRAP_UI(WRAP_FILES ${UI_FILES})
# source_group("Ui" FILES ${UI_FILES} ${WRAP_FILES})# 设置资源目录
set(RESOURCES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/res)# 生成资源文件
qt5_add_resources(RESOURCES ${RESOURCES_DIR}/res.qrc)# 添加可执行文件 如果不在add_executable()中添加使用了Qt元系统的头文件,那么AUTOMOC就不会处理这些头文件。
add_executable(${TARGETNAME} ${SRC_FILES} ${HEAD_FILES} ${RESOURCES})#链接Qt库
target_link_libraries(${TARGETNAME} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::QuickWidgets Qt5::WebEngineWidgets)# 安装目标文件和头文件
install(TARGETS ${TARGETNAME} DESTINATION bin)
install(DIRECTORY include/ DESTINATION include)
踩过的坑
Q:创建ui的设计器左边displaywidgets总是找不到quickview和webengine
A:安装插件的自动被赋值到了anconda下面的某个designer了