一、交叉编译
github上下载:https://github.com/google/glog
解压:unzip spdlog-1.12.0.zip
进入工程并创建build:cd spdlog-1.12.0 &mkdir build
添加编译信息(编译工具链):
cd toolchains
cp gcc-cxx11.cmake arm-gcc-cxx11.cmake
修改信息:
vim arm-gcc-cxx11.cmake
# Sample toolchain file for building with gcc compiler
#
# Typical usage:
# *) cmake -H. -B_build -DCMAKE_TOOLCHAIN_FILE="${PWD}/toolchains/gcc.cmake"
SET(CMAKE_SYSTEM_NAME arm-linux)
# set compiler
set(CMAKE_C_COMPILER /home/wgh-new1/qt-arm/lin/bin/arm-xilinx-linux-gnueabi-gcc)
set(CMAKE_CXX_COMPILER /home/wgh-new1/qt-arm/lin/bin/arm-xilinx-linux-gnueabi-g++)
# set c++ standard
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
编译安装:
cd /home/glog-0.5.0/build
cmake -DCMAKE_INSTALL_PREFIX=/home/glog_install - DCMAKE_TOOLCHAIN_FILE=/home/spdlog-1.12.0/toolchains/arm-gcc-cxx11.cmake ..
编译
make
安装
make install
初步使用一下
cd ../../glog_install
vim main.cpp
#include <iostream>
#include <glog/logging.h>
int main(int argc, char* argv[]) {
google::InitGoogleLogging(argv[0]); // 初始化 glog 日志
LOG(INFO) << "This is an informational message.";
LOG(WARNING) << "This is a warning message.";
LOG(ERROR) << "This is an error message.";
google::ShutdownGoogleLogging(); // 关闭 glog 日志
return 0;
}
编译:
arm-xilinx-linux-gnueabi-g++ main.cpp -o test -std=c++11 -I./include -L./lib -lglog
运行:
需要把编译出来的库导入arm设备的/usr/lib目录下
/test
E20230101 09:59:40.338867 2568 main.cpp:9] This is an error message.
运行结果符合预期,说明交叉编译成功。
二,部署Qt项目
可以把install里面的内容直接放到项目下面
在.pro文件里添加两行
LIBS += -L ./glog_install/lib -lglog
INCLUDEPATH += ./glog_install/include
进行重构就可以了
三、项目使用
glog使用:
1、禁用日志信息中的时间信息
FLAGS_log_prefix = false;
2、设置警告(warning)等级及以上等级的日志输出到终端
FLAGS_logtostderr = true;
FLAGS_minloglevel = google::WARNING;
3、 设置日志输出格式和目标文件
google::SetLogDestination(google::INFO, "./logs/info_log.");
google::SetLogDestination(google::ERROR, "./logs/error_log.");