首页 > 其他分享 >spdlog库笔记 (二):编译、安装

spdlog库笔记 (二):编译、安装

时间:2022-10-15 23:00:35浏览次数:91  
标签:头文件 笔记 编译 VS spdlog include example

目录

安装

编译、运行平台

  • Linux,FreeBSD,OpenBSD,Solaris,AIX
  • Windows(MSVC 2013+,cygwin)
  • MacOS(clang 3.5+)
  • Andriod

编译、安装

直接拷贝include文件到用户的项目

由于spdlog是基于头文件实现的,实现代码都位于include目录下的头文件中。因此,可以拷贝include文件夹到你的构建树中,使用C++11编译器。

$ git clone https://github.com/gabime/spdlog.git$ cd spdlog && mkdir build && cd build$ cmake .. && make -j

项目(example示例)的CMake文件可以这样写:

# Copyright(c) 2019 spdlog authors Distributed under the MIT License (http://opensource.org/licenses/MIT)

cmake_minimum_required(VERSION 3.10)
project(spdlog_examples CXX)

if(NOT TARGET spdlog)
    # Stand-alone build
    find_package(spdlog REQUIRED)
endif()

# ---------------------------------------------------------------------------------------
# Example of using pre-compiled library
# ---------------------------------------------------------------------------------------
add_executable(example example.cpp)
target_link_libraries(example PRIVATE spdlog::spdlog)

# ---------------------------------------------------------------------------------------
# Example of using header-only library
# ---------------------------------------------------------------------------------------
if(SPDLOG_BUILD_EXAMPLE_HO)
    add_executable(example_header_only example.cpp)
    target_link_libraries(example_header_only PRIVATE spdlog::spdlog_header_only)
endif()

Windows下编译

使用git clone将源码下载到本地后,有两种编译方式:1)使用CMake GUI + VS 2022;2)使用VS 2022直接编译。

使用CMake-GUI步骤:
(1)设置源码路径、build路径、根据需要设置CMAKE_INSTALL_PREFIX(安装路径)

(2)然后依次点击Configure、Generate按钮,出现如图所示"Generating done"提示,说明生成VS工程文件。

(3)接下来,需要用VS (我用的VS Community 2022)打开build路径下的.sln解决方案文件,打开成功后如下图所示:

注意:如果CMAK_INSTALL_PREFIX指定的目录是系统盘,如C盘,需要管理员方式打开VS 2022,否则可能没有权限安装文件到系统盘。

(4)右键ALL_BUILD点击生成,从而编译目标,右键INSTALL点击生成,会安装库文件到前面CMAK_INSTALL_PREFIX指定的目录。

会生成2个文件夹include包含头文件,lib包含库文件。

至此,说明编译、安装成功。接下来,在自己的项目中引入并使用spdlog。

使用spdlog

Windows下使用spdlog

通过一个例程,演示如何在VS 2022上的APP工程使用spdlog记录日志。

1)设置头文件路径
首先将头文件路径(include)包含进项目的搜索头文件路径,或者直接将include目录下的文件拷贝到编译器MSVC的头文件目录。

2)设置库文件路径
将lib目录下的spdlogd.lib库文件路径包含进链接器的库文件路径,或者直接将lib目录下的文件拷贝到编译器MSVS的库文件目录。

3)在APP源码中#include spdlog库头文件及测试代码

以下代码来自spdlog自带的example/example.cpp例程(也可以从这个地址拷贝 Basic example | 1.QuickStart | spdlog wiki

#include <iostream>

#include <spdlog/spdlog.h>
#include <spdlog/cfg/env.h>  // support for loading levels from the environment  variable
#include <spdlog/fmt/ostr.h> // support for user defined types

using namespace std;
using namespace spdlog;

int main()
{
       // Set the log level to "info" and mylogger to "trace":
       // SPDLOG_LEVEL=info,mylogger=trace && ./example
       spdlog::cfg::load_env_levels();
       spdlog::info("Welcome to spdlog version {}.{}.{}  !", SPDLOG_VER_MAJOR,  SPDLOG_VER_MINOR, SPDLOG_VER_PATCH);
       spdlog::warn("Easy padding in numbers like {:08d}", 12);
       spdlog::critical("Support for int: {0:d};  hex: {0:x};  oct: {0:o}; bin:  {0:b}", 42);
       spdlog::info("Support for floats {:03.2f}", 1.23456);
       spdlog::info("Positional args are {1} {0}..", "too", "supported");
       spdlog::info("{:>8} aligned, {:<8} aligned", "right", "left");
       return 0;
}

4)编译、运行APP
可从终端观察到日志输出如下:

参考

windows10 下使用 spdlog 总结(spdlog 1.7)

标签:头文件,笔记,编译,VS,spdlog,include,example
From: https://www.cnblogs.com/fortunely/p/16795289.html

相关文章

  • spdlog库笔记 (一):简介
    目录简介资源简介spdlog是一个非常快、基于头文件编译的、跨多平台的C++日志库。特点:运行非常快基于.h头文件(很奇怪是不是)实现不依赖第三方库(不太严格,只是不需......
  • Day05笔记
    01.数组类(了解)1.目的:设计一个类,该类有数组的功能,可以存储数据,可以删除修改数据2.设计核心数据1.属性:指针(指向堆区空间),数组实际存储的元素个数,数组容量2.方法:构造(开辟堆......
  • 【学习笔记】Cookie
    Cookie什么是会话?会话:用户打开一个浏览器,点击了一些超链接,访问了多个web资源,关闭浏览器,这个过程称之为会话。有状态会话:记录用户曾经登录过某个网站。什么是Cook......
  • Linux学习笔记 | Shell脚本创建与执行
    一、输出命令echo格式:echo[选项][输出内容]说明:选项  -e  表示的是支持反斜线控制的字符转换注意:如果输出的内容中含有空格,使用双引号,如果内容中含有“!”,使用单引......
  • Kubernetes学习笔记(三十九):KodeKloud练习题(一)
    QuestionUpgradethecurrentversionofkubernetesfrom1.23.0to1.24.0exactlyusingthekubeadmutility.Makesurethattheupgradeiscarriedoutonenod......
  • 2022-10-15 react+react-draft-wysiwyg之富文本编译器安装过程
    npminstall--savereact-draft-wysiwygnpminstall--savedraft-jsnpminstall--savedraftjs-to-htmlnpminstall--savehtml-to-draftjs需要引入以下文......
  • python 笔记
    变量:直接弄,不用搞类型,关于字符串有一个转义/的运用.注释:#(单行)''''''多行python没有{},用行对齐来表示函数:def+函数名(参数): 加回车下面就开始......
  • conda笔记
    目录目录安装创建新环境安装LinuxPython3.6版本脚本下载bash~/Downloads/Anaconda3-5.0.1-MacOSX-x86_64.sh按提示安装关闭重新打开终端,使Anaconda生效验证是否安......
  • 【学习笔记】HttpServletRequest
    HttpServletRequestweb服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,和一个代表响应的HttpServletResponse对象如果要获取......
  • Java核心技术阅读笔记(第四章)
    Chapter4对象与类作者:Denis版本:1.0编写时间:2022/10/15编写地点:中国山西省4.1类与对象的概述可以把类想象为一个模具,利用类能够创造出很多同属于一个物种但参......