栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

qt creator使用vcpkg

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

qt creator使用vcpkg

概述

网上关于如何在QT Creator 中使用vcpkg的教程较少,且很多无效,介绍下目前我使用的方法。

Qt Creator:7.0.1
Qt:6.2.3
MacOS:Monterey 12.2.1

Cmake中使用vcpkg

方式一:

$ cmake .. "-DCMAKE_TOOLCHAIN_FILE=D:srcvcpkgscriptsbuildsystemsvcpkg.cmake"

方式二:

cmake_minimum_required(VERSION 3.14)

project(chatkit)

# 工程中使用vcpkg安装的库,改成自己的vcpkg安装目录
set(CMAKE_TOOLCHAIN_FILE "/Users/xxx/repo/github/vcpkg/scripts/buildsystems/vcpkg.cmake")

那么,在QT Creator中如何使用vcpkg,来安装第三方库依赖呢?

QT Creator 使用vcpkg

直接在项目Tab下面的增加 CMAKE_TOOLCHAIN_FILE ,具体如下:

  1. 点击项目
  2. 点击initial configuration
  3. 点击Add -> String
  4. key输入:CMAKE_TOOLCHAIN_FILE
  5. value输入:你vcpkg安装的路径
  6. 点击 Re-configure with inital Parameters

此时,我们观察输出:

成功!

附录:我的完整CMakeLists.txt
cmake_minimum_required(VERSION 3.14)

project(chatkit)

add_definitions(
        -g
        -fPIC
        -D__STDC_FORMAT_MACROS
        -Wall
        -Wno-unused-parameter
        -Wno-unused-function
        -Wno-unused-const-variable
        -Wno-unused-variable
        -Wno-unused-value
        -Wshadow
        -Wcast-qual
        -Wcast-align
        -Wwrite-strings
        -Wsign-compare
        -Winvalid-pch
        -fms-extensions
        -Wfloat-equal
        -Wextra
        -std=c++11
        #-Werror # 警告视为错误,比较严格,可以根据需求启用
)

# 库名字和版本号设置
set(ChatKitLib chatkit)
set(ChatKitLib_VERSION 0.1.0)

# 源码文件
aux_source_directory(cim CHAT_KIT_SRC)
aux_source_directory(cim/base CHAT_KIT_SRC)
aux_source_directory(cim/base/file CHAT_KIT_SRC)
aux_source_directory(cim/base/util CHAT_KIT_SRC)
aux_source_directory(cim/core CHAT_KIT_SRC)
aux_source_directory(cim/crypt CHAT_KIT_SRC)
aux_source_directory(cim/db CHAT_KIT_SRC)
aux_source_directory(cim/pb CHAT_KIT_SRC)

if (APPLE) # 使用vcpkg 快速安装的依赖
    find_package(protobuf CONFIG REQUIRED)
    find_package(spdlog CONFIG REQUIRED)
    find_package(restclient-cpp CONFIG REQUIRED)
    find_package(SQLiteCpp CONFIG REQUIRED)
    find_package(unofficial-libuv CONFIG REQUIRED)
    find_package(nlohmann_json CONFIG REQUIRED)
else ()
    #set(VCPKG_INCLUDE_DIR /Users/xuyc/repo/github/vcpkg/installed/x64-osx/include)
    #set(VCPKG_LIB_DIR /Users/xuyc/repo/github/vcpkg/installed/x64-osx/lib)
endif ()

# 动态库
add_library(${ChatKitLib} SHARED ${CHAT_KIT_SRC})
#add_library(${ChatKitLib} STATIC)
# 起一个别名
add_library(cim::chatkit ALIAS ${PROJECT_NAME})

target_include_directories(${PROJECT_NAME}
        PUBLIC
        ${PROJECT_SOURCE_DIR} # chatKit目录,这样外部就能找到头文件所在目录了
        ${VCPKG_INCLUDE_DIR}
        )
target_link_directories(${PROJECT_NAME}
        PUBLIC
        ${VCPKG_LIB_DIR})

target_link_libraries(${ChatKitLib}
        PRIVATE
        # 在macOS下,是静态库,windiws下,需要显式安装静态库,否则为动态库
        protobuf::libprotobuf-lite
        restclient-cpp
        SQLiteCpp
        spdlog::spdlog
        nlohmann_json::nlohmann_json
        unofficial::libuv::libuv
        )
关于

写了Qt开源的IM 客户端,如果感兴趣,不妨点个Star欄

  • github:https://github.com/feigechat/FeigeChat-Desktop

目前还在开发中,放一个设计图:

参考
  • Qt Creator: CMake package-manager auto-setup
  • Windows + Qt Creator + PCL + vcpkg
  • Installing and Using Packages Example: SQLite
  • QT的cmake项目工程配置 原创
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/920541.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号