Win10安装Glog-0.4.0 Cmake VS2017
准备
下载
Cmake
进入cmake官网点击Download Latest Release下载最新版本,本文档使用Cmake3.19.1。
Glog
进入glog的github主页点击右侧Releases能够下载各个版本的glog,本文档使用glog0.4.0。
VS2017
此处不赘述。
*Gflags
根据网友描述,新版本的glog安装可以不用预先安装gflags。但因为之前在没安装gflags时尝试数次安装都失败了,还是决定先装上gflags。
进入gflags的github主页点击右侧Releases下载,本文档使用gflags2.2.2。
为了方便编译,将cmake、glog、gflags三个压缩包解压在一个文件夹中,同时为glog和gflags建立build文件夹。
为了区分源码和编译后的文件,再新建一个install文件夹。
在install文件夹内新建glog和gflags文件夹
编译及配置环境
Cmake
将cmake文件夹解压后找到cmake-gui并打开。
编译gflags
由于后续编译glog会需要gflags的路径,因此先安装gflags。
打开cmake-gui,并填写以下内容:
- 点击Configure,选择VS2017平台,点击finish之后会进行短暂读条并出现一堆红色选项。*其余选项不填充,默认为x64平台。
- 取消选中BUILD_TESTING
- 选中BUILD_SHARED_LIBS,以便生成.dll文件。如果不存在BUILD_SHARED_LIBS,可通过Add Entry手动添加。
- 将CMAKE_INSTALL_PREFIX中的地址改为D:/software/3rd_party/install/gflags
- 再次点击Configure,然后点击Generate,读条完成后点击旁边的Open Project,会自动打开VS2017(也可以进入gflags_build文件夹中找到gflags.sln打开工程)。
- 分别在Debug x64和Release x64模式下,右键All_BUILD生成。
- 然后再Debug x64和Release x64模式下,右键INSTALL生成。
Tip:右键点击左侧项目找到设为启动项目可以切换项目
编译glog
与上述编译gflags过程相似:
- 点击Configure,选择VS2017平台,点击finish之后会进行短暂读条并出现一堆红色选项。
- 取消选中BUILD_TESTING
- 选中BUILD_SHARED_LIBS,以便生成.dll文件。如果不存在BUILD_SHARED_LIBS,可通过Add Entry手动添加。
- 将CMAKE_INSTALL_PREFIX中的地址改为D:/software/3rd_party/install/glog
- 选中WITH_GFLAGS
- 下方gflags_dir=D:/software/3rd_party/install/gflags/lib/cmake/gflags(一般情况下会自动填充)
- 再次点击Configure,然后点击Generate,读条完成后点击旁边的Open Project,会自动打开VS2017(也可以进入gflags_build文件夹中找到gflags.sln打开工程)。
- 分别在Debug x64和Release x64模式下,右键All_BUILD生成。
- 然后再Debug x64和Release x64模式下,右键INSTALL生成。
配置环境变量
回到桌面,右键“此电脑”点击属性,高级系统属性,环境变量,系统变量,Path,新建。
在Path中输入以下地址:
D:/software/3rd_party/install/gflags/bin
D:/software/3rd_party/install/glog/bin
以上,glog的编译已经完成,以下进行测试。
测试
新建工程
在VS2017中新建一个glogtest的新工程,然后找到该工程的文件夹(这个得看大家自己的设置)。
将以下文件复制到glogtest工程的文件夹中:
- D:/software/3rd_party/install/glog/bin中的glog.dll
- D:/software/3rd_party/install/gflags/bin中的gflags.dll
- D:/software/3rd_party/install/glog/lib中的glog.lib
- glog原始包中的src/windows/glog整个文件夹
平台设置
右键工程,点击属性,找到配置管理器,将活动解决方案平台调整为x64。
加入头文件、dll、lib文件
回到属性页。
-
配置属性 -> 调试 -> 环境
添加PATH=C:\Users\lostcorner\source\repos\glogtest(即测试工程文件夹)
-
配置属性 -> c/c++ -> 常规 -> 附加包含目录
添加C:\Users\lostcorner\source\repos\glogtest;
-
配置属性 -> 链接器 -> 常规 -> 附加库目录
添加C:\Users\lostcorner\source\repos\glogtest;
-
配置属性 -> 链接器 -> 输入 -> 附加依赖项
添加glog.lib;
测试代码
#include "glog/logging.h"
using namespace google;
#pragma comment(lib, "glog.lib")
int main(int argc, char* argv[])
{
// Start google log system:
FLAGS_log_dir = "d:\\Logs";
google::InitGoogleLogging(argv[0]);
google::SetLogDestination(google::GLOG_INFO, "d:\\Logs\\INFO_");
google::SetStderrLogging(google::GLOG_INFO);
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
char str[20] = "hello log!";
LOG(INFO) << str;
LOG(INFO) << "info test" << "hello log!"; //输出一个Info日志
LOG(WARNING) << "warning test"; //输出一个Warning日志
LOG(ERROR) << "error test"; //输出一个Error日志
google::ShutdownGoogleLogging();
return 0;
}
完成!
致谢
在编译过程,感谢以下博主提供思路
https://www.cnblogs.com/zsgyx/p/10920418.html
在测试过程,感谢以下博主提供代码
https://blog.csdn.net/sagittarius_warrior/article/details/77482087