• 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)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    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;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    工程结构图:
    在这里插入图片描述

  • 相关阅读:
    条件控制
    KITTI数据集leaderboard上单目SLAM方法
    刷爆力扣之最短无序连续子数组
    【无标题】
    已解决(Python最新xlrd库读取xlsx报错)SyntaxError: invalid syntax
    API性能监控 【ApiHelp】-- 组件Enhance 代码实现 ~ ASM字节码增强
    Java实现SQL分页
    css---定位
    基于STC15单片机电子时钟液晶1602串口显示-proteus仿真-源程序
    【CKA考试笔记】六、存储管理
  • 原文地址:https://blog.csdn.net/shfqbluestone/article/details/127968375