广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Clion下vcpkg的使用详解
  • 484
分享到

Clion下vcpkg的使用详解

2024-04-02 19:04:59 484人浏览 泡泡鱼
摘要

环境 ubuntu 20+ clion 2021.1 背景 在linux下,每次新创建1个项目,可能会使用一些第三方库,比如: toml解析 spdlog日志 难

环境

ubuntu 20+
clion 2021.1

背景

linux下,每次新创建1个项目,可能会使用一些第三方库,比如:

难道每次都要我去重新下载源码,然后编译,在配置CMake?太麻烦了吧,看看别人前端,需要一个包只用执行 npm install axio 就行了,好羡慕。

刚好,前段时间在windows下使用了一把vcpkg,目前vcpkg作为c++的包管理工具,已经相对成熟了,很多著名的开源组件都对vcpkg进行了支持。

于是,我们在Ubuntu 20 下 通过Clion来试试可不可以呢?

vcpkg

先来安装一下 GitHub


# Debian, Ubuntu 要额外执行
$ sudo apt-get update
$ sudo apt-get install build-essential tar curl zip unzip

# Centos 要额外执行
$ sudo yum install centos-release-scl
$ sudo yum install devtoolset-7
$ scl enable devtoolset-7 bash

$ git clone https://github.com/microsoft/vcpkg
$ .\vcpkg\bootstrap-vcpkg.sh
$ vim ~/.bashrc
# 加入vcpkg的路径到环境变量
export PATH=/home/xmcy0011/data/vcpkg:$PATH
$ source ~/.bashrc # 立即生效
$ vcpkg help # 不报错,则成功

使用方法,记住2个命令即可 searchinstall


$ vcpkg search toml11 # 搜索c++包
$ vcpkg install tmol11 # 安装c++包,并且进行本地编译,后面就可以直接在clion中通过find_packge()使用。

如何在Clion中使用

创建一个项目

在这里插入图片描述

配置Clion,使用vcpkg

注意:这个配置是针对项目级别,故每个项目都需要配置。

  • Open the Toolchains settings (File > Settings on Windows and Linux, CLion > Preferences on MacOS),
  • and Go to the CMake settings (Build, Execution, Deployment > CMake)
  • Finally, in CMake options, add the following line

-DCMAKE_TOOLCHAIN_FILE=[vcpkg root]/scripts/buildsystems/vcpkg.cmake

在这里插入图片描述

编辑CMakeList.txt

因为之前已经通过:


$ vcpkg install tmol11
The package toml11:x64-linux provides CMake targets:

    find_package(toml11 CONFIG REQUIRED)
    target_link_libraries(main PRIVATE toml11::toml11)

安装了toml解析的包,安装成功后会打印使用方法如find_packge(…),target_link_libraries(…),我们把它拷贝到CMakeList.txt中使用:


cmake_minimum_required(VERSION 3.0)
project(test_vcpkg_in_clion)

set(CMAKE_CXX_STANDARD 14)

# 这里使用toml11来解析toml文件
find_package(toml11 REQUIRED)
if (toml11_FOUND)
    message("find toml11=${toml11_VERSION}")
endif ()

add_executable(test_vcpkg_in_clion main.cpp)
# 通过静态库的方式使用toml11
target_link_libraries(test_vcpkg_in_clion PRIVATE toml11::toml11)

别忘记了,点击Reload changes,重新生成项目哦。

在这里插入图片描述

创建一个toml测试文件

在cmake-build-debug目录下面创建一个example.tmo文件,内容如下:


[server]
ip = "127.0.0.1"

如何使用安装的toml11库?

使用的话,就很简单了,直接include即可。
main.cpp


#include <iOStream>
// 这里的路径是什么,见每个库的github说明
// 比如vcpkg install spdlog,使用方法是:#include "spdlog/spdlog.h"
#include "toml.hpp"  

int main() {
    auto data = toml::parse("example.toml");
    auto &server = toml::find(data, "server");
    std::string ip = toml::find<std::string>(server, "ip");

    std::cout << "Hello, World!" << ip << std::endl;
    return 0;
}

编译运行

在这里插入图片描述
在这里插入图片描述

我们看到,很快的都实现了一个toml的文件解析,是不是很方便呢?

最后,我们来用nm(动态库就是ldd)验证一下:

在这里插入图片描述

到此这篇关于Clion下vcpkg的使用的文章就介绍到这了,更多相关Clion vcpkg使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Clion下vcpkg的使用详解

本文链接: https://www.lsjlt.com/news/123443.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Clion下vcpkg的使用详解
    环境 ubuntu 20+ clion 2021.1 背景 在Linux下,每次新创建1个项目,可能会使用一些第三方库,比如: toml解析 spdlog日志 难...
    99+
    2022-11-12
  • C++编译器Clion的使用详解(总结)
    推荐教程 Clion2020.2.x最新激活版附安装教程(Mac Linux Windows) 最新clion2020激活附安装教程(亲测有效) Clion是由JetBrains公司...
    99+
    2022-11-12
  • redis debug环境搭建过程详解(使用clion)
    目录概要环境搭建的大体思路windows下安装linux工具链什么是make和cmake安装c语言开发的ide具体安装步骤clion安装及插件安装克隆redis 代码如何调试如何调试...
    99+
    2022-11-12
  • 详解linux下umask的使用
    最近开始学习linux ,看完马哥的linux课程关于umask的这个部分, 写这篇博客希望加深下我对umask的理解 和对umask不太清楚的博友一些帮助。 1 umask 是什么 当我们登录系统之后创建一个文件是会...
    99+
    2022-06-04
    linux umask使用
  • C/C++ 开发神器CLion使用入门超详细教程
    CLion是Jetbrains公司旗下新推出的一款专为开发C/C++所设计的跨平台IDE,它是以IntelliJ为基础设计的,同时还包含了许多智能功能来提高开发人员的生产力。 Cl...
    99+
    2022-11-12
  • 详解如何配置CLion作为Qt5开发环境的方法
    使用Qt进行程序开发时QtCreator总是不二之选。作为老牌IDE在提供了强大的功能同时也对Qt的支持做了许多优化。如果没有特别的原因你应该使用它。 然而一个顺手的工具将会极大得提...
    99+
    2022-11-12
  • linux 下selenium chrome使用详解
    安装chrome wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm yum install ./go...
    99+
    2022-06-03
    linux selenium chrome selenium使用chrome
  • Linux下Makefile的编写与使用详解
    目录MakefileMakefile文件命名和规则Makefile的工作原理Makefile变量Makefile函数Makefile clean规则Makefile 一个工程文件中的源文件可能有很多,并且不同的功能、模块...
    99+
    2022-06-04
    Linux下Makefile编写介绍 Linux系统Makefile使用介绍
  • windows下ipython的安装与使用详解
    ipython的安装 ipython可以直接使用pip install ipython安装 ,如果安装失败按如下步骤手动进行安装 所需文件下载: 链接:http://pan.baidu.com/s...
    99+
    2022-06-04
    详解 windows ipython
  • MySQL子查询的使用详解下篇
    目录相关子查询EXISTS与NOT EXISTS关键字相关子查询 相关子查询执行流程 如果子查询的执行依赖于外部查询,通常情况下都是因为子查询中的表用到了外部的表,并进行了条件关联,因此每执行一次外部查询,子查询都要重新...
    99+
    2022-08-30
  • Android下的QuickJSBinding库特性使用详解
    目录特性依赖使用创建 JSContext执行 JavaScript支持的 Java 类型属性设置属性获取编译和执行字节码ESModule 模块加载和执行同步GitHub 地址:qui...
    99+
    2022-11-13
  • linux下source命令使用详解
    Linux Source命令及脚本的执行方式解析 当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录;这时就想到用source命令,如:source /etc/profile 对so...
    99+
    2022-06-04
    详解 命令 linux
  • linux下dd使用方法详解
    本篇内容介绍了“linux下dd使用方法详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 命令简介dd 的主要选项:指定数字的地方若以下列...
    99+
    2023-06-13
  • CLion开发stm32 使用DSP库的操作方法
    目录1. 添加DSP库文件到工程目录2. 修改CMakeLists3. 添加STM32HAL库使用CLion开发stm32时,添加stm32的DSP库支持,以便进行后续FFT等运算 ...
    99+
    2022-11-13
  • Windows下NumPy库的安装与使用详解
    在数据科学和机器学习领域,NumPy是一个非常流行的Python库,它提供了一个强大的多维数组对象和各种计算功能。在Windows操作系统下安装和使用NumPy库也非常简单。本文将详细介绍Windows下NumPy库的安装和使用方法。 安...
    99+
    2023-06-27
    windows numpy leetcode
  • android studio 的下拉菜单Spinner使用详解
    一、认识Spinner Spinner其实就是一个列表选择框。不过Android的列表选择框并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择。 Spinner 与 Gal...
    99+
    2022-06-06
    Android Studio studio spinner Android
  • Linux下core文件的使用方法详解
    前言 有时候程序会异常退出而不带任何日志,此时就可以使用 code 文件进行分析,它会记录程序运行的内存,寄存器,堆栈指针等信息 什么是core文件 通常在 linux 下遇到程序异常退出或者中止,我们都会使用 cor...
    99+
    2022-06-04
    linux core文件 linux下core文件 linux生成core文件
  • laravel下trait的使用代码实例详解
    前言 今天在整理laravel的练习项目时,发现自己的代码结构中有很多重复的代码。于是搜索了一下laravel框架的代码复用机制。知道了Trait的存在,于是学习使用了一下。 关于T...
    99+
    2022-11-11
  • 特定用例下的Combine全面使用详解
    目录引言网络URLSession ExtensionCodable向多个 Subscriber 发布网络数据调试打印事件执行副作用使用 Debugger OperatorTimer使...
    99+
    2022-12-26
    Combine 特定用例 Combine 用例
  • C#下使用XmlDocument操作XML详解
    目录一、XML DOM概述二、XML成员1、XMl节点:XmlNode1、属性:2、方法:2、XML文档:XMLDocument1、属性:2、方法:3、事件:3、XML元素:XmlE...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作