首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为c++配置google glog和gflags

为c++配置google glog和gflags
EN

Stack Overflow用户
提问于 2014-05-10 21:28:34
回答 1查看 14.5K关注 0票数 5

我一直在尝试为我的C++应用程序配置谷歌日志库glog,但我找不到任何关于如何实际让它工作的信息,错误消息也没有什么帮助。

这是我试图执行的示例代码,我正在执行./myapp --v=2,但是我得到“错误:未知命令行标志'v'”。有没有关于这个库的文档,或者有人知道如何正确地配置它?

代码语言:javascript
复制
#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;
}
EN

回答 1

Stack Overflow用户

发布于 2014-09-13 23:41:10

GLog需要在"google“名称空间中编译GFlags,而不是现在默认的”gflag“名称空间。

为了设置这个命名空间,你必须从源代码编译和安装gflag,并将GFLAGS_NAMESPACE变量设置为"google“。

以下是我在Kubuntu14.04中遵循的步骤,应该与您在Mac中应该执行的操作类似。这将把本地源代码放在/usr/ GFlags /src中,并将库安装在/usr/local/lib&include目录中。最后一个命令(ldconfig)在系统中注册库。

代码语言:javascript
复制
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单元测试源文件中的includes之后使用gflag的名称空间,如下所示:

代码语言:javascript
复制
#ifdef HAVE_LIB_GFLAGS
#include <gflags/gflags.h>
using namespace gflags;
#endif
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23581621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档