xcode使用spdlog(1.7)总结

Posted pandamohist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xcode使用spdlog(1.7)总结相关的知识,希望对你有一定的参考价值。

注意?? 请选择对c++11支持完善的编译器, 因为spdlog一直更新。

 

本文演示环境: mac osx Mojave10.14.6  , Xcode version: 11.0

本文使用的是clang++对代码的编译

 

1、准备

  A、spdlog源码(当前为1.7): https://github.com/gabime/spdlog

  B、xcode 11.0 or 支持c++11的版本: https://developer.apple.com/download/more/ .  更为简单的方法就是appstore安装(傻瓜式)或者命令行安装。Xcode的安装,这里跳过。

 

2、解压

  A、解压下载的spdlog源码。

  B、打开解压文件夹,找到 include文件夹 或者 include/spdlog文件夹

技术图片

3、使用

  这里,我将创建一个command line app演示用法

  A、创建c++工程

技术图片

技术图片

  B、Xcode项目设置头文件寻找路径, 打开 上面创建的项目 demo ->  Build Settings , 找到 Header Search Paths

技术图片

  重点来了:  因为我们需要引用的头文件来自spdlog,这里需要设置Xcode的头文件寻找方式:相对路径,这样,好处是: 当我们将项目拷贝到其他电脑,也可正常编译。

  注意, 我拷贝spdlog源码文件夹下的include文件夹到创建项目x_spdlog_demo的文件夹的x_spdlog_demo文件夹下(也可拷贝spdlog文件夹),见下图:

技术图片

  C、添加配置。

  将 Header Search Paths 的值 设置为 : $(SRCROOT)/x_spdlog_demo  。

  解释: 例如,我这里创建的项目名是: x_sdplog_demo,   $(SRCROOT)的值是: x_spdlog_demo.xcodeproj    所在路径。这样设置,告诉xcode,去我们指定的目录下寻找头文件。

  技术图片

  D、回到xcode的main.cpp 添加代码。

#include "include/spdlog/spdlog.h"
#include "include/spdlog/sinks/rotating_file_sink.h"

int main(int argc, const char * argv[])
{
    // 1、console output
    spdlog::info("Hello, {}!", "World");
    
    
    // 2、log to file
    auto rotating_logger_a = spdlog::rotating_logger_mt("log_file_a", "logs/ra.txt", 1024 * 1024 * 5, 3);

    for (int i = 0; i < 1024; i++)
    {
        rotating_logger_a->info("index = {}", i);
    }

    spdlog::shutdown();
    
    return 0;
}

  --> 重点来了, 这里 引用 spdlog库头文件方式 与 上面 设置 Header Search Paths 有关。

  1)、示例代码中,#include "include/spdlog/spdlog.h"  , Xcode寻找为路径为: $(SRCROOT)/x_spdlog_demo/include/spdlog/spdlog.h  。   2)、若 Header Search Paths    配置为:$(SRCROOT)/x_spdlog_demo/include , 那么, 代码引用需要改为: #include "spdlog/spdlog.h"  .

 

  D、构建或者command+B. 发现报错,报错提示: 找不到: "XXXXXX /spdlog/common.h"。 打开文件: include/spdlog/spdlog.h。 将包含头文件的方式改为:include "XXX.h"  。我这里演示的, 需要改为: #include "include/spdlog/common.h" .

  技术图片

   E、再次构建,发现还是找不到文件。 和D的步骤一致,找到错误提示,改为 include "XXX.h"的方式。 直到 构建成功。 

  技术图片

  F、构建成功,说明即可正常使用 spdlog 。 运行,并打开输出 目录, 可见程序已经创建日志文件并记录数据。

技术图片

 

Xcode使用spdlog结束。 

还等什么,继续学习 spdlog 源码吧。 

 

以上是关于xcode使用spdlog(1.7)总结的主要内容,如果未能解决你的问题,请参考以下文章

spdlog源码分析

如何在代码中启用/禁用 spdlog 日志记录?

如何转义 spdlog 消息?

如何使用 spdlog 绘制文本背景?

spdlog 基本结构分析

Spdlog 和 VS2019 Intellisense 错误