!!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!!

作者:mohist

注意️ 请选择对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)总结的更多相关文章

  1. Xcode 锁终端

    锁终端 输入: <1>cd /Applications/Xcode.app 回车 结果显示: Xcode.app 输入: <2>sudo chown -hR root:whee ...

  2. xcode低版本调试高版本真机系统

    低版本xcode调试本真机高版本系统 //打开此路径把最新的文件拷贝到这里就可以了 /Applications/Xcode.app/Contents/Developer/Platforms/iPhon ...

  3. 在xcode中用 swift 进行网络服务请求

    xcode集成开发环境是运行于Mac苹果电脑上用于开发swift应用程序的工具,利用xcode可以很方便.直观的开发OS X和iOS系统所支持的应用程序. 1 开发环境: Mac OS 10.11 X ...

  4. Xcode自定义代码块

    到现在才发现原来Xcode有自定义代码块这么神奇的功能,能简化很多无聊的敲重复代码的工作,真是感叹我怎么才知道!!! 具体的设置流程见:http://nshipster.cn/xcode-snippe ...

  5. Xcode7使用插件的简单方法&&以及怎样下载到更早版本的Xcode

    Xcode7自2015年9上架以来也有段时间了, 使用Xcode7以及Xcode7.1\Xcode7.2的小伙伴会发现像VVDocumenter-Xcode\KSImageNamed-Xcode\HO ...

  6. Xcode 8 日志输出乱码问题

    更新到Xcode 8的同学应该都遇到了这个问题:用Xcode 8运行项目,日志会疯狂的刷,就像下面这种图一样:

  7. Mac下QT错误,Xcode配置解决办法

    出现错误: Xcode not set up properly. You may need to confirm the license agreement by running / 解决办法如下: ...

  8. 加快XCode的编译链接速度(200%+)—XCode编译速度慢的解决方案

    最近在开发一个大项目的时候遇到一个很头疼的问题,由于项目代码较多,每次都要编译链接1分钟左右,调试的时候很浪费时间,于是研究了一下如何提高编译链接的速度,在这里分享给大家. 提升编译链接的速度主要有以 ...

  9. Xcode 运行程序,左侧memory 不显示内存

    运行程序后,xcode 不显示当前使用的内存情况,问题是打开了僵尸--enable zoombie Objects,关闭即可 打开 product--->SCheme-->EditSChe ...

随机推荐

  1. [转载]CSP-J/S 第一轮知识点选讲

    CSP-J/S 第一轮知识点选讲 转载自这里 感谢原博主的大力整理! 信息学史及基本知识 一.信息学及计算机史 计算机的顶级奖项:图灵奖.冯·诺依曼奖 图灵奖:由ACM(美国计算机协会)设立于1966 ...

  2. [R]在dplyr基础上编写函数-(1)eval

    tidyverse系列的R包虽然解放了大家的双手,但同时也束缚了我们重新编写函数的能力.在这一套语法中,要实现作为函数参数的字符串和变量之间的相互转换困难重重,但只要掌握了其中原理后,也就能够游刃有余 ...

  3. docker 使用加速器下载

    因为docker官网的镜像地址docker.hum.com是在国外的 所以下载速度比较慢,国内有一些镜像源是比较快的,内容是和docker官网的一致 常用的加速器有 docker-cn 阿里云加速器 ...

  4. 质量体系建设之路---可视化的MockServer

    一. 背景 福禄网络作为一家数字权益商品及服务提供商,覆盖了我们衣食住行的各种生活场景的权益内容,对接了如支付宝.京东.银行APP各种渠道,如何能够快速的响应渠道需求,提供稳定的接口服务,这就要求我们 ...

  5. SpringBoot整合Shiro 四:认证+授权

    搭建环境见: SpringBoot整合Shiro 一:搭建环境 shiro配置类见: SpringBoot整合Shiro 二:Shiro配置类 shiro整合Mybatis见:SpringBoot整合 ...

  6. C#点击按钮添加标签

    <asp:Button ID="button1" runat="server" Text="创建" onclick="But ...

  7. Java日期格式转换不用发愁

    前言 Java 中日期.时间相关的类相当的多,并且分不同的版本提供了不同的实现,包括 Date . Calendar . LocalDateTime . ZoneDateTime . OffsetDa ...

  8. day01互联网架构理论

  9. Mybatis相关知识点(二)

    Mybatis解决jdbc编程的问题 1. 数据库连接创建.释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库连接池可解决此问题. 解决:在SqlMapConfig.xml中配置数据连接池,使用 ...

  10. npm下载错误解决办法

    解决办法:删除npmrc文件. 使用镜像 镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在):1.通过config命令12npm config set re ...