【环境搭建】gflags和glog的安装
在Ubuntu16.04上安装gflags
什么是gflags
gflags用于处理命令行参数
安装gflags
- 用apt下载git和cmake
sudo apt-get install git
sudo apt-get install cmake
- 将gflags源码下载到指定目录
# 以/thirdparty-source/gflags作为指定目录为例
git clone https://github.com/gflags/gflags /thirdparty-source/gflags
- 使用apt安装autoconf,automake和libtool
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
- 进入包含gflags源码的文件夹
# 以/thirdparty/gflags作为安装目录为例
cmake -DCMAKE_INSTALL_PREFIX=/thirdparty/gflags -DBUILD_SHARED_LIBS=ON -DGFLAGS_NAMESPACE=google -G"Unix Makefiles"
make -j
sudo make install
在Ubuntu16.04上安装glog
什么是glog
glog用于生成日志
安装glog
- 将glog源码下载到指定目录
# 以/thirdparty-source/glog作为指定目录为例
git clone https://github.com/google/glog /thirdparty-source/glog
- 进入包含glog源码的文件夹
./autogen.sh
# 以/thirdparty/glog作为安装目录为例
sudo CFLAGS="-fPIC" ./configure --prefix=/thirdparty/glog
# 以/thirdparty/glog作为安装目录为例
cmake -DBUILD_gflags_LIBS=ON -DBUILD_SHARED_LIBS=ON -DBUILD_gflags_nothreads_LIBS=ON -DGFLAGS_NAMESPACE=ON -DCMAKE_INSTALL_PREFIX=/thirdparty/glog
# 相比make,make -j编译更快
make -j
sudo make install
- 查看cpu信息。cat命令的功能是查看某个文件的内容,在终端打印文件中的内容
cat /proc/cpuinfo
使用glog
因为glog被安装在自己指定的目录下,所以必须通过配置环境变量才能让程序找到相关文件(gflags也是一样)。配置方法如下
1.用vim新建一个.bash_profile文件
vim .bash_profile
注意.bash_profile文件是隐藏的,查看需要用下面这个命令
ls -a
- 在.bash_profile文件中用下面的格式配置环境变量
# glog
# C_INCLUDE_PATH:c语言.c文件需要的头文件的路径
export C_INCLUDE_PATH="/thirdparty/glog/include":$C_INCLUDE_PATH
# CPLUS_INCLUDE_PATH是c++:cpp文件需要的头文件的路径
export CPLUS_INCLUDE_PATH="/thirdparty/glog/include":$CPLUS_INCLUDE_PATH
# LD_LIBRARY_PATH:程序编译连接之后寻找库文件的路径
export LD_LIBRARY_PATH="/thirdparty/glog/lib":$LD_LIBRARY_PATH
# LIBRARY_PATH:程序编译连接时寻找库文件的路径
export LIBRARY_PATH="/thirdparty/glog/lib":$LIBRARY_PATH
# CMAKE_PREFIX_PATH
export CMAKE_PREFIX_PATH="/thirdparty/glog":$CMAKE_PREFIX_PATH
# PKG_CONFIG_PATH
export PKG_CONFIG_PATH="/thirdparty/glog/lib/pkgconfig":$PKG_CONFIG_PATH
保存退出vim后执行下面的命令使环境变量临时生效
source .bash_profile
配置好环境变量后新建一个glog_test.cpp文件,内容如下
#include "glog/logging.h"
int main(int argc, char* argv[])
{
google::InitGoogleLogging(argv[0]);
// test_log是存放日志的文件夹,和glog_test.cpp在同一目录下,且必须提前mkdir好
FLAGS_log_dir = "./test_log";
LOG(INFO)<<"my glog test";
return 0;
}
保存之后使用下面命令编译glog_test.cpp 文件
g++ -o glog_test glog_test.cpp -lglog
- -o 后面的第一个glog_test是编译glog_test.cpp后生成可执行文件的名字
- -lXX是手动连接c++的库,丢失或位置不对都会报错。
编译之后会在当前目录生成一个名为glog_test的可执行文件,执行它
./glog_test
之后会在test_log文件中看到生成的日志文件
结语
如果您有修改意见或问题,欢迎留言或者通过邮箱和我联系。
如果我的文章对您有帮助,转载请注明出处。