windows glog 安装以及环境搭建

news2025/1/15 16:11:25

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 <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;
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/24175.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp 切换WIFI

最近有一个新的需求&#xff0c;在app中实现切换wifi的功能。 方法一、 实现&#xff1a;使用安卓9&#xff08;28&#xff09;方法的WifiManager.addNetwork切换&#xff0c;具体实现方法大家自己搜&#xff0c;很容易搜到。 弊端&#xff1a; 要先忘记 WI-FI 才能连接成功&…

竞品分析:秒健康

发展历程 妙健康产品上线后&#xff0c;最初主要提供相关的在线医疗服务健康管理社区互动&#xff0c;虽然也有瘦身等相关功能&#xff0c;但整体业务偏向医疗化&#xff0c;用户年龄层也相对偏高。 15年进入健康市场后&#xff0c;不断探索并完善有关医疗业务的相关功能&am…

FBA海运是什么,FBA海运的优势是什么

FBA的方式分为海运&#xff0c;空运&#xff0c;快递这种&#xff0c;其中海运是各种方式中性价比最高的一种&#xff0c;不仅价格便宜&#xff0c;而且运货量大&#xff0c;清关简单&#xff0c;虽然时效有点慢&#xff0c;但是量大可以补救&#xff0c;我们在这里主要说一说F…

java设计模式

设计模式汇总(copy) 介绍 内容链接设计模式简介https://blog.csdn.net/m0_54485604/article/details/113309133 UML 类图介绍 内容链接UML类图https://blog.csdn.net/m0_54485604/article/details/113243818 六大设计原则 内容链接开闭原则https://blog.csdn.net/m0_54485604/a…

Spring:AOP的核心概念(10)

AOP核心概念AOP简介什么是AOPAOP作用AOP核心概念AOP入门案例AOP工作流程流程1: Spring容器启动流程2: 读取所有切面配置中的切入点流程3: 初始化bean流程4: 获取bean执行方法AOP核心概念AOP小结AOP简介 什么是AOP AOP(Aspect Oriented Programming)面向切面编程&#xff0c;一…

SSD 1306显示屏 adafruit SSD 1306

文章目录1.常用函数1.字体oled.printoled.setRotation(1);oled.setTextSize(1);oled.setCursor(35, 5);2.图形类oled.fillScreen(WHITE );//coloroled.fillRect(10, 10, 20, 20, WHITE );//x y x1 y1 coloroled.drawRect(10, 10, 40,40, WHITE );//x y x1 y1 coloroled.drawCir…

数字信号处理-3-函数的正交

0 导读 如果函数成正交关系&#xff0c;那么它们的积的定积分为 0。反过来说就是&#xff0c;如果两个函数相乘的定积分值为 0&#xff0c;那么称这两个函数正交。sinx 与 cosx 正交&#xff0c;sinnx 与 sinmx 正交&#xff08;m与n不相等&#xff09;&#xff0c;cosnx 与 c…

留学文书Statement of Purpose写法介绍

留学目的陈述&#xff08;Statement of Purpose, 通常简写为SOP&#xff09;是留学申请文书里的重要内容之一。通过SOP&#xff0c;目标学校可以更深入地了解申请人的留学目的以及申请人的目标是否和学校的教学理念相一致。因此&#xff0c;在撰写SOP的时候&#xff0c;申请者要…

开播客户端

OBS架构 配置数据&#xff1a;json表示 libobs接口导出&#xff1a;export、import 多线程中的缓冲队列&#xff1a;circlebuf动态循环缓冲 分层 UI > libobs > 插件 libobs C实现的&#xff0c;拥有一个全局变量控制所有事务。 视频采集渲染线程、视频编码线程&…

基于PHP+MYSQL的网上鲜花店销售系统(含论文)

鲜花在人们的生活中是一个非常重要的东西,在节假日或者一些有特殊含义的日子里人们通常会给亲朋好友或者长辈们送上一束有特殊含义的鲜花来表示自己对节日的问候,为了给人们增加鲜花的选择性和降低购买的难度我们开发了本网上鲜花店销售系统 本网上鲜花店销售系统是通过当下最流…

CorelDRAW2023安装下载教程精简版矢量绘图软件

CDR全称是CorelRAW2023&#xff0c;它不同于Photoshop&#xff0c;PS是一款图片处理软件&#xff0c;而CDR是一款较为常用的矢量绘图设计软件&#xff0c;该软件给设计师提供了矢量动画、页面设计、网站制作、位图编辑和网页动画等多种功能&#xff0c;使用的比较多的版本是202…

【读点论文】CMT: Convolutional Neural Networks Meet Vision Transformers

CMT: Convolutional Neural Networks Meet Vision Transformers Abstract 视觉transformer已经成功地应用于图像识别任务&#xff0c;因为它们能够捕获图像中的长距离依赖性。然而&#xff0c;transformer和现有卷积神经网络&#xff08;CNN&#xff09;在性能和计算成本方面仍…

Pandas太慢?快使用Vaex DataFrame,每秒数亿数据算起来 ⛵

&#x1f4a6; 作者&#xff1a;韩信子ShowMeAI &#x1f4d8; 数据分析实战系列&#xff1a;https://www.showmeai.tech/tutorials/40 &#x1f4d8; 本文地址&#xff1a;https://www.showmeai.tech/article-detail/393 &#x1f4e2; 声明&#xff1a;版权所有&#xff0c;转…

LR低代码快速开发平台 高效调整企业组织架构

组织架构以及围绕组织架构的设计、实施和变革&#xff0c;是企业管理永恒的话题&#xff0c;它上承公司的业务战略和运营模式&#xff0c;下接业务流程和信息系统建设&#xff0c;重要性不言而喻。数字化变革浪潮之下&#xff0c;商业模式的颠覆、价值链的重塑都需要由相匹配的…

解读商业智能BI,数据仓库中的元数据

之前的文章讨论过数据分析、数据治理、数据仓库等等&#xff0c;即使是非业内人员从字面意思&#xff0c;也是可以了解一二的&#xff0c;但是&#xff0c;很多人对于元数据可能就比较陌生了。那么&#xff0c;今天我们就来聊一聊元数据管理。 一、数据仓库 要说元数据&#…

IB 物理真题: 比潜热、理想气体

本题是 2017 年 IB 物理试卷 paper 2 的一道大题&#xff0c;在 SL 和 HL 的试卷中&#xff0c;这道题基本没什么区别&#xff0c;所以适用于所有考 IB 物理的学生。这道题主要涉及到了功率、比潜热、和理想气体的知识&#xff0c;具体讲了液氧蒸发成氧气的过程。如下图所示&am…

简述CompletableFuture异步任务编排

前言 在之前的项目开发中&#xff0c;都没怎么使用过CompletableFuture的功能&#xff0c;只听说过和异步编程有关。为了能够在将来有需要的时候用得上&#xff0c;这两天花了点时间学习了一下&#xff0c;并简单地总结一下如何使用CompletableFuture完成异步任务编排。 先创…

Linux20 -- 线程安全、保证线程安全的示例代码

一、线程安全 线程安全即就是在多线程运行的时候&#xff0c;不论线程的调度顺序怎样&#xff0c;最终的结果都是 一样的、正确的。那么就说这些线程是安全的。 线程安全&#xff1a;多线程程序&#xff0c;无论调度顺序咋样&#xff0c;都可以得到正确一致的结果。安全–正确…

React-fiber基础之requestAnimationFrame和requestIdleCallback

屏幕刷新率 目前大多数设备的屏幕刷新率是60次每秒浏览器渲染动画或者页面的每一帧的速率也需要根设备屏幕的刷新率保持一致页面是一帧一帧绘制出来的&#xff0c;当每秒的帧数&#xff08;FPS&#xff09;达到60&#xff0c;页面是流畅的&#xff0c;小于这个值&#xff0c;用…

公众号免费查题接口

公众号免费查题接口 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&#xff08;点击…