将glog日志系统引入静态库项目中

2 篇文章 0 订阅
1 篇文章 0 订阅

  因为项目需要,引入glog到项目中,将glog源码下载下来后,使用cmake成功编译为vs工程(这个时候需要选择你需要使用vs版本,本人选择vs2015),用vs2015将代码编译,工程中的glog动态库就是我需要的,编译glog得到静态库,测试其他的demo是否可以正常使用此glog.lib库文件,测试signalhandler_unittest发现能用。鉴于我不只想要静态库,我需要将整个glog的项目移到我的工程中,于是直接将glog项目文件及其依赖的文件直接拷贝到我的项目文件下,再在我的工程中直接添加此glog工程到我的解决方案下,这时候编译肯定是一堆得报错,因为我们这么直接拷贝,glog.vcxproj中的很多的配置和以来没有改,编译项目肯定是找不到我们想要的文件路径下的头文件、源文件、依赖库文件的,这个时候就需要自己修改glog.vcxproj了,这个文件其实就是个xml文件,你得知道xml中一些关键属性的意义,在此不多说,这个靠经验积累。

  经过一番修改后,终于可以在我的解决方案下编译成功glog了,这个过程可能需要防止glog项目中的文件有和自己项目有冲突的,有冲突没关系!那就通过改名或者加命名空间解决冲突,一句话,只要让编译器能够正确区分之前冲突的那些文件,解决冲突后,可能需要修改一些宏定义才能编译glog成功,这点要注意。

  glog编译成功了,那我们的项目如何使用glog呢,老规矩,在我的想要引入glog日志的A工程的项目属性中,修改头文件目录,使之包含glog的相关头文件,这个过程看你自己是怎么放的,同样的道理,在库文件目录增加对glog库文件的包含,这样你在A工程中通过引入glog头文件来使用glog中接口,可能这个时候仍旧会报错,根据vs编译输出,你再根据error所在,修改A工程项目属性中的头文件包含目录、库文件包含目录,一句话,“只要A工程的项目属性能够正确引用到glob的头文件、库文件,项目属性各编译选项和glog匹配,A工程就能使用glog库文件。”,这句话是我解决此类库文件引入问题的经验所得。这个A工程中使用glog的过程中还有一个小插曲,就是我头文件包含目录、库文件包含都设置对了,各个项目属性都对比设置后,编译A工程仍然报错提示我在A工程中使用的glog api InitGoogleLogging是不可识别的标识符,这个报错很常见,一般都是找不到库文件导致,百思不得其解之后,我在A工程项目属性-->C++--->预处理器中添加了一个”GOOGLE_GLOG_DLL_DECL=;“宏,再编译,顺利通过!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux上使用glog静态的步骤如下所示: 1. 首先,将glog静态文件libglog.a和头文件src/glog复制到您的工程目录。这些文件可以从引用提供的资源获取。 2. 接下来,创建一个名为main.cpp的文件,并将以下代码添加到该文件: ``` /******************************************************** main.cpp ********************************************************/ #include <stdio.h> #include "glog/logging.h" int main() { // 初始化参数 FLAGS_logtostderr = false; // TRUE:标准输出,FALSE:文件输出 FLAGS_alsologtostderr = true; // 除了日志文件之外是否需要标准输出 FLAGS_colorlogtostderr = false; // 标准输出带颜色 FLAGS_logbufsecs = 0; // 设置可以缓冲日志的最大秒数,0指实时输出 FLAGS_max_log_size = 10; // 日志文件大小(单位:MB) FLAGS_stop_logging_if_full_disk = true; // 磁盘满时是否记录到磁盘 google::InitGoogleLogging("mqttserver"); google::SetLogDestination(google::GLOG_INFO, "./test"); LOG(INFO) << "this is log"; LOG(WARNING) << "this is warning"; LOG(ERROR) << "this is error"; google::ShutdownGoogleLogging(); } ``` 3. 编译和链接您的代码。您可以使用以下命令编译您的代码: ``` g++ main.cpp -o main -lglog ``` 这将生成一个名为main的可执行文件。 4. 运行您的程序。您可以使用以下命令运行您的程序: ``` ./main ``` 这将执行您的代码,并在"./test"目录下生成日志文件。 请注意,如果在编译过程遇到任何错误,请根据引用提供的信息检查头文件的路径是否正确,并确保已正确安装gflags和glog,如引用所述。 希望这可以帮助您在Linux上使用glog静态。如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值