为c++配置google日志和gflags
Configure google glog and gflags for c++
我一直在尝试为我的c++应用程序配置谷歌日志库glog,但我找不到任何关于如何实际使其工作的信息,错误消息是不太有用的。
这是我试图执行的示例代码,我正在执行./myapp --v=2
,但我得到"错误:未知命令行标志'v'"。这个库有任何文档吗,或者有人知道如何正确配置它吗?
#include <glog/logging.h>
#include <gflags/gflags.h>
int main(int argc, char** argv) {
google::InitGoogleLogging(argv[0]);
google::ParseCommandLineFlags(&argc, &argv, true);
VLOG(1) << "I'm printed when you run the program with --v=1 or higher";
VLOG(2) << "I'm printed when you run the program with --v=2 or higher";
return 0;
}
GLog需要在"google"命名空间中编译GFlags,而不是现在默认的" GFlags "命名空间。
为了设置这个命名空间,你必须从源代码编译并安装gflags,并将GFLAGS_NAMESPACE变量设置为"google"。
以下是我在Kubuntu 14.04中遵循的步骤,应该与你在Mac OSX中应该做的类似。这将把GFlags源代码放在/usr/local/src中,并将库安装在/usr/local/lib&include目录中。最后一个命令(ldconfig)在系统中注册库。cd /usr/local/src/
cp /path/to/downloaded/gflags-2.1.1.tar.gz .
sudo tar xzf gflags-2.1.1.tar.gz
cd /tmp
mkdir buildgflags
cd buildgflags
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON
-DGFLAGS_NAMESPACE=google -G"Unix Makefiles" /usr/local/src/gflags-2.1.1/
make
sudo make install
sudo ldconfig
或者,您可以在GLog源代码中应用以下补丁(附在最后一个回复中):
https://code.google.com/p/google-glog/issues/detail?id=194它基本上在GLogs单元测试源文件的include之后使用gflags的命名空间,如下所示:
#ifdef HAVE_LIB_GFLAGS
#include <gflags/gflags.h>
using namespace gflags;
#endif
相关文章:
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 是否可以配置提升日志刷新?
- 跟踪日志中的T.11803()是什么意思?
- 加快在C++中读取/处理日志文件的速度
- 如何将消息时间戳写入日志文件?
- 分析包含 NMEA 句子的日志文件C++
- 如何修复输出日志中的"EnableInput can only be specified on a Pawn for its Controller"错误
- 如何实现具有多个平台__FILE__和__LINE__信息的 C/C++ 可变参数日志记录宏?
- Log4net,将日志消息从 c++ dll 发送到 c# 应用程序?
- 返回ERROR_INVALID_PARAMETER的事件日志函数
- 为什么系统日志有两个不同的函数声明?
- 从更改日志获取最新的 USN 数据
- 如何从日志文件中抓取状态代码?(在 C++ 中)
- 未创建日志文件
- C++ 中混合二进制/文本日志记录的最佳做法
- 将日志宏转换为目标 C 字符串
- 轻松日志记录++如何避免多个初始化
- 尝试使用 EvtSetChannelConfigProperty() 函数更新最大事件日志文件大小时插入的错误值
- 输出 c++ 窗口 wstring 日志在终端中正确
- 为c++配置google日志和gflags