xcode使用spdlog(1.7)总结
!!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!!
作者: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)总结的更多相关文章
- Xcode 锁终端
		锁终端 输入: <1>cd /Applications/Xcode.app 回车 结果显示: Xcode.app 输入: <2>sudo chown -hR root:whee ... 
- xcode低版本调试高版本真机系统
		低版本xcode调试本真机高版本系统 //打开此路径把最新的文件拷贝到这里就可以了 /Applications/Xcode.app/Contents/Developer/Platforms/iPhon ... 
- 在xcode中用 swift 进行网络服务请求
		xcode集成开发环境是运行于Mac苹果电脑上用于开发swift应用程序的工具,利用xcode可以很方便.直观的开发OS X和iOS系统所支持的应用程序. 1 开发环境: Mac OS 10.11 X ... 
- Xcode自定义代码块
		到现在才发现原来Xcode有自定义代码块这么神奇的功能,能简化很多无聊的敲重复代码的工作,真是感叹我怎么才知道!!! 具体的设置流程见:http://nshipster.cn/xcode-snippe ... 
- Xcode7使用插件的简单方法&&以及怎样下载到更早版本的Xcode
		Xcode7自2015年9上架以来也有段时间了, 使用Xcode7以及Xcode7.1\Xcode7.2的小伙伴会发现像VVDocumenter-Xcode\KSImageNamed-Xcode\HO ... 
- Xcode 8 日志输出乱码问题
		更新到Xcode 8的同学应该都遇到了这个问题:用Xcode 8运行项目,日志会疯狂的刷,就像下面这种图一样: 
- Mac下QT错误,Xcode配置解决办法
		出现错误: Xcode not set up properly. You may need to confirm the license agreement by running / 解决办法如下: ... 
- 加快XCode的编译链接速度(200%+)—XCode编译速度慢的解决方案
		最近在开发一个大项目的时候遇到一个很头疼的问题,由于项目代码较多,每次都要编译链接1分钟左右,调试的时候很浪费时间,于是研究了一下如何提高编译链接的速度,在这里分享给大家. 提升编译链接的速度主要有以 ... 
- Xcode 运行程序,左侧memory 不显示内存
		运行程序后,xcode 不显示当前使用的内存情况,问题是打开了僵尸--enable zoombie Objects,关闭即可 打开 product--->SCheme-->EditSChe ... 
随机推荐
- 学习java的第二十八天
			一.今日收获 1.java完全学习手册第三章算法的3.2排序,比较了跟c语言排序上的不同 2.观看哔哩哔哩上的教学视频 二.今日问题 1.快速排序法的运行调试多次 2.哔哩哔哩教学视频的一些术语不太理 ... 
- 日常Java(测试 (二柱)修改版)2021/9/22
			题目: 一家软件公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道四则运算题目给小学生做. 二柱一下打印出好多份不同的题目,让孩子做了.老师看了作业之后,对二柱赞许有加.别的老师闻讯, 问二柱 ... 
- Vue面试专题(未完)
			1.谈一下你对MVVM原理的理解 传统的 MVC 指的是,用户操作会请求服务端路由,路由会调用对应的控制器来处理,控制器会获取数 据.将结果返回给前端,页面重新渲染. MVVM :传统的前端会将数 ... 
- 面试一定会问到的-js事件循环
			这篇文章讲讲浏览器的事件循环(nodejs中的事件循环稍有不同),事件循环是js的核心之一,因为js是单线程,所以异步事件实现就是依赖于事件循环机制,理解事件循环可让我们更清晰的处理js异步事件和应对 ... 
- linux 定时导出sql查询结果文件
			如果想在服务器端生成sql查询结果的txt文件. 大体思路就是: 1.创建一个到处txt文件的sql脚本. set ARRAYSIZE 50 --从数据库往客户端一次发送记录数 set linesiz ... 
- SpringMVC(2):JSON
			一,JSON 介绍 JSON (JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效 ... 
- 一、手把手教你docker搭建fastDFS文件上传下载服务器
			在搭建fastDFS文件上传下载服务器之前,你需要准备的有一个可连接的linux服务器,并且该linux服务器上已经安装了docker,若还有没安装docker的,先百度自行安装docker. 1.执 ... 
- 【Linux】【Services】【Web】Haproxy
			1. 概念 1.1. 官方网站 http://www.haproxy.org/ 2. 安装 yum安装 yum -y install haproxy keepalived 配置haproxy日志,修改 ... 
- 聊聊 SpringBoot 中的两种占位符:@*@ 和 ${*}
			前言 在 SpringBoot 项目中,我们经常会使用两种占位符(有时候还会混用),它们分别是: @*@ ${*} 如果我们上网搜索「SpringBoot 的占位符 @」,大部分答案会告诉你,Spri ... 
- numpy基础教程--二维数组的转置
			使用numpy库可以快速将一个二维数组进行转置,方法有三种 1.使用numpy包里面的transpose()可以快速将一个二维数组转置 2.使用.T属性快速转置 3.使用swapaxes(1, 0)方 ... 
