windows glog 安装以及环境搭建

ocr 代码是用 C++ 写得,以前只有一个同事在维护,他离职几年了,那块代码没人能改得了。工作后一直在写 Java ,写了快 10 年 Java 了。看了几天 C++ 代码,终于能在 vs 下把代码给跑起来了。

写 Java 代码是在 mac 平台下 IntelliJ IDEA 开发工具写得,不断的在不同操作系统平台、不同 IDE 下切换,太低效了。就想着把 windows 下的 ocr 代码改成用 cmakelists 构建,能在 mac 、windows 下的平台、开发工具下都能跑起来,结果引入 glog 环境搭建了几天还没好,今天刚搭建好。就把搭建过程写在这里,方便后来人。

最开始按照 github 上 glog 的安装方法,老是失败。

我是想用 clion 开发,build 工具是用 minGW 。

  1. 安装 clion 。
  2. 安装 minGW 。
  3. 下载 glog 二进制包 https://pkgs.org/download/mingw-w64-google-glog。
  4. 由于 glog 还依赖了 gflags ,所以还需要下载 gflags https://packages.msys2.org/base/mingw-w64-gflags。
  5. glog、gflags 都是 tar.zst 格式的压缩包,常见的压缩工具还没办法解压缩,所以还需要下载 NanaZip 解压工具。
  6. 解压 glog、gflags 后还需要把二者的 bin 目录添加到环境变量中。
  7. 配置完环境变量重启下 IDE ,IDE 才能读取到配置的 glog、gflags 环境变量。
  8. 配置 CMakeLists.txt 。
  9. 写代码测试

CMakeLists.txt 内容:

cmake_minimum_required(VERSION 3.23)
project(glogTest)

set(CMAKE_CXX_STANDARD 14)
set(glog_DIR D:\\cxx_install\\mingw64-glog\\lib\\cmake\\glog)
set(gflags_DIR D:\\cxx_install\\mingw-w64-gflags-2.2.2.4\\mingw64\\lib\\cmake\\gflags)
find_package(glog REQUIRED)
find_package(gflags REQUIRED)
if (glog_FOUND)
    MESSAGE("GLOG FOUND")
else(glog_FOUND)
    message("glog not found")
endif(glog_FOUND)

if (gflags_FOUND)
    MESSAGE("gflag FOUND")
else(gflags_FOUND)
    message("gflag not found")
endif(gflags_FOUND)

add_executable(glogTest main.cpp)
target_link_libraries (glogTest glog::glog)

main.cpp

#include 
#include "glog/logging.h"
using namespace std;

int main() {
    cout << "hello" << endl;

    google::InitGoogleLogging("glogTest");

    //要先创建此目录,否则运行报错.
    string home = "D:\\cxxprojects\\glogTest\\logs\\";  

    string info_log = home + "master_info_";
    google::SetLogDestination(0, info_log.c_str());

    LOG(INFO) << "info1";
    LOG(WARNING) << "warning1";
    LOG(WARNING) << "warning2";
    LOG(WARNING) << "warning3";
    LOG(ERROR) << "error1";

    LOG(INFO) << "info2";

    LOG(INFO) << "info3";

    LOG(ERROR) << "error2";
    
    return 0;
}

工程结构图:
windows glog 安装以及环境搭建_第1张图片

你可能感兴趣的:(windows,glog,CMakeLists,C++,c++)