QT:使用VS搭建qt环境

文章详细介绍了如何在Windows的VisualStudio中使用CMake搭建基于QT的开发环境,包括设置C++标准、QT模块查找、编译选项、目标位置和链接库。通过CMakeLists.txt文件,开发者可以更灵活地管理QT项目的构建和配置,提高代码的可移植性和可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在 Windows 平台下,使用 Visual Studio 搭建基于 CMake 的 QT 开发环境可以使开发者更加灵活地控制和管理 QT 项目的构建和配置。此过程需要在 Visual Studio 中安装并使用 CMake 工具,然后在 CMakeLists.txt 文件中添加适当的 QT 配置信息,以便编译、链接和生成 QT 项目。

        创建 CMake 项目可以让 QT 开发者更加轻松地管理项目依赖和库文件,并且可以在多个平台和不同的编译器中运行,从而大大提高了代码的可移植性和可维护性。在 Visual Studio 中为 QT 项目创建 CMake 项目,首先需要安装 CMake 工具以及适当的 QT 版本,然后在 Visual Studio 中创建一个 CMake 项目并配置 CMakeLists.txt 文件。

        利用 CMakeLists.txt 文件可以添加 QT 组件库、自定义编译选项、定义编译器路径等,从而更好地控制和管理 QT 项目的构建过程。使用 Visual Studio 搭建 CMake 项目可以让 QT 开发者更加专注于本质的应用程序开发,以便更加高效地构建、测试和发布 QT 应用程序。

 

  • 初次使用VS创建CMake项目时会出现一个out文件夹目录下存在CMakeLists.txt,CMakePresets.json,CMakeProject.cpp,CMakeProject.h这四个子目录 为了更好地学习与理解使用VS配置CMake进行QT开发,我在这里直接删除CMakeProject.cpp,CMakeProject.h文件,重新创建一个main.cpp文件,然后将CMakeLists.txt内的代码全部清空重新手写一遍,来加深理解,从而提升学习效率。
  • 重写后的解决资源管理器out文件夹目录下只存在三个子目录CMakeLists.txt,CMakePresets.json,main.cpp,其中CMakePresets.json暂时不动,通过手写CMakeLists.txt和main.cpp内的代码来加深理解与学习。
  •  下面是我对手写CMakeLists.txt和main.cpp的细节描述:

 

  • CMakeLists.txt文件内代码细节

         CMake是一个跨平台的自动化构建系统,它使用名为CMakeLists.txt的文本文件来描述项目的构建过程。这个文件可以通过编写简单的指令来创建编译过程,并且可以在不同的平台上使用相同的CMakeLists.txt文件来构建项目。

cmake_minimum_required (VERSION 3.8)

project (QtPro)

#指定C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

if(MSVC)
	add_compile_options(/Zc:__cplusplus)
endif()

#指定头文件包含目录
include_directories("D:/Progm/QT/software/install/6.2.4/msvc2019_64/include")
#设置模块的cMake路径
set(CAMKE_PREFIX_PATH "D:/Progm/QT/software/install/6.2.4/msvc2019_64/lib/cmake")
#查找指定模块
find_package(Qt6 COMPONENTS Widgets REQUIRED)
#指定目标位置
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/bin)

# 将源代码添加到此项目的可执行文件。
add_executable (QtPro "main.cpp")

#将目标链接库文件
target_link_libraries(QtPro Qt6::Widgets)
message("My debug message:")

一个典型的CMakeLists.txt文件通常包含以下内容:

  1. 项目的名称和版本号

    cmake_minimum_required(VERSION 3.8)
    project(MyProject VERSION 1.0)
    
  2. 设置项目编译选项

    set(CMAKE_CXX_STANDARD 17)
    set(CMAKE_CXX_STANDARD_REQUIRED True)
    #其中True可以用ON表示
    #set(CMAKE_CXX_STANDARD_REQUIRED ON)
    
  3. 设置编译器警告等级、开启特定的编译选项、设置编译器优化等级等

    if(MSVC)
    	add_compile_options(/Zc:__cplusplus)
    endif()
    
    #当编译器报错“/Zc:__cplusplus”时可以用这个方法来防止报错
  4. 添加包含目录和链接库目录

    include_directories(include)
    link_directories(lib)
    
  5. 设置和查找指定模块

    #设置模块的cMake路径    PS:注意!目录的“\”符号在项目中应换成“/”否则会报错
    set(CAMKE_PREFIX_PATH "D:/Progm/QT/software/install/6.2.4/msvc2019_64/lib/cmake")
    #查找指定模块
    find_package(Qt6 COMPONENTS Widgets REQUIRED)
    #
  6. 指定目标位置,指定编译生成的可执行文件的输出目录

    #指定目标位置 
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/bin)
  7. 添加库或可执行文件

    add_library(MyLibrary SHARED ${SOURCES})
    add_executable(MyExecutable ${SOURCES})
    
  8. 链接库和可执行文件

    target_link_libraries(MyLibrary MyOtherLibrary)
    target_link_libraries(MyExecutable MyLibrary)
    

PS:注意操作顺序!!!include_directories(include)的操作应该放在添加可执行程序add_executable(MyExecutable ${SOURCES})操作之前,链接库target_link_libraries(MyLibrary MyOtherLibrary)的操作应该放在添加可执行程序add_executable(MyExecutable ${SOURCES})操作之后!

  • 1. 规定CMake最低版本要求:cmake_minimum_required (VERSION 3.8)

  cmake_minimum_required (VERSION 3.8) 是一个CMake脚本的指令,它用于规定了构建该工程所需要的最低版本的CMake的版本号。意思是,只有高于或等于3.8版本的CMake才可以用来构建这个工程。

        这里的VERSION 3.8中的3.8是指CMake的主版本号和次版本号,它表示工程所需要的最低版本的CMake应该是3.8或更高的版本。

        在CMake脚本中使用cmake_minimum_required指令是一个基本的规范,它确保了整个项目所需要的最低版本的CMake已经安装,并且可以避免由于CMake版本不兼容而导致的构建失败。此外,这个指令同样也会用于告诉用户,这个工程需要使用哪个版本的CMake来进行构建。


PS:注意CMake版本号特点,3.16比3.8版本号要高!

        CMake版本号命名规则通常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值