使用cmake-gui进行转换为Visual Studio 的sln工程文件&&glog在Windows下的使用

1.首先将库git到本地
https://github.com/google/glog
2.使用cmake-gui进行转换为Visual Studio 的sln工程文件(如下图)
(使用我转换好的也可以https://github.com/czqu/builds/tree/master/glogs

使用cmake-gui进行转换为Visual Studio 的sln工程文件&&glog在Windows下的使用_第1张图片
使用cmake-gui进行转换为Visual Studio 的sln工程文件&&glog在Windows下的使用_第2张图片
然后选择vs版本和CPU架构(如果之前编译错了,再进去可能不能进到这个界面,把输出目录删除即可)
使用cmake-gui进行转换为Visual Studio 的sln工程文件&&glog在Windows下的使用_第3张图片
3.点击generate,即可完成。

4.如果出现如下错误,说明你缺少gflags库,编译方法和上面一样不再赘述
https://github.com/gflags/gflags

Could not find a package configuration file provided by "gflags" (requested
  version 2.2.0) with any of the following names:

    gflagsConfig.cmake
    gflags-config.cmake

使用cmake-gui进行转换为Visual Studio 的sln工程文件&&glog在Windows下的使用_第4张图片
5.然后新建一个测试工程(debug库和release库不能混用,不同架构也不能),添加头文件和库目录,记得需要在开头加上 GLOG_NO_ABBREVIATED_SEVERITIES和GOOGLE_GLOG_DLL_DECL,不然会报错

#pragma once
#define GLOG_NO_ABBREVIATED_SEVERITIES
#define GOOGLE_GLOG_DLL_DECL
#include 
using namespace google;
#ifdef _DEBUG
#pragma comment(lib, "glogd.lib")
#else
#pragma comment(lib, "glog.lib")
#endif // DEBUG
void testGlog2()
{
     
char str[20] = "hello log!";
int i = 100000;
while (i > 0) {
     
    //  LOG(INFO) << str;
    LOG(INFO) << "2info 2test" << "2hello 2log!";  //输出一个Info日志
    //  LOG(WARNING) << "warning test";  //输出一个Warning日志
  //    LOG(ERROR) << "error test";  //输出一个Error日志
    i--;
}
}
void testGlog()
{
     
// Start google log system:
FLAGS_log_dir = "E:\\logs";
google::InitGoogleLogging("loglog");
google::SetLogDestination(google::GLOG_INFO, "E:\\logs\\INFO_");
google::SetStderrLogging(google::GLOG_FATAL);
google::SetLogFilenameExtension("log_");
FLAGS_colorlogtostderr = true;  // Set log color
FLAGS_logbufsecs = 0;  // Set log output speed(s)
FLAGS_max_log_size = 1024;  // Set max log file size
FLAGS_stop_logging_if_full_disk = true;  // If disk is full
thread *t = new thread(testGlog2);
char str[20] = "hello log!";
int i = 100000;
while (i > 0) {
     
//  LOG(INFO) << str;
    LOG(INFO) << "info test" << "hello log!";  //输出一个Info日志
//  LOG(WARNING) << "warning test";  //输出一个Warning日志
//  LOG(ERROR) << "error test";  //输出一个Error日志
    i--;
}
t->join();
google::ShutdownGoogleLogging();
}

本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

你可能感兴趣的:(#,软件安装与环境配置,杂七杂八)