ocr 代码是用 C++ 写得,以前只有一个同事在维护,他离职几年了,那块代码没人能改得了。工作后一直在写 Java ,写了快 10 年 Java 了。看了几天 C++ 代码,终于能在 vs 下把代码给跑起来了。
写 Java 代码是在 mac 平台下 IntelliJ IDEA 开发工具写得,不断的在不同操作系统平台、不同 IDE 下切换,太低效了。就想着把 windows 下的 ocr 代码改成用 cmakelists 构建,能在 mac 、windows 下的平台、开发工具下都能跑起来,结果引入 glog 环境搭建了几天还没好,今天刚搭建好。就把搭建过程写在这里,方便后来人。
最开始按照 github 上 glog 的安装方法,老是失败。
我是想用 clion 开发,build 工具是用 minGW 。
- 安装 clion 。
- 安装 minGW 。
- 下载 glog 二进制包 https://pkgs.org/download/mingw-w64-google-glog。
- 由于 glog 还依赖了 gflags ,所以还需要下载 gflags https://packages.msys2.org/base/mingw-w64-gflags。
- glog、gflags 都是 tar.zst 格式的压缩包,常见的压缩工具还没办法解压缩,所以还需要下载 NanaZip 解压工具。
- 解压 glog、gflags 后还需要把二者的 bin 目录添加到环境变量中。
- 配置完环境变量重启下 IDE ,IDE 才能读取到配置的 glog、gflags 环境变量。
- 配置 CMakeLists.txt 。
- 写代码测试
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 <iostream>
#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;
}
工程结构图: