首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标志与glog兼容性

标志与glog兼容性
EN

Stack Overflow用户
提问于 2015-11-22 20:17:13
回答 1查看 1.3K关注 0票数 1

我想在我的项目中构建g旗子和glog。下面你可以看到密码。我编译几乎没有问题,但是由于一些兼容性错误,我会遇到不同的致命错误,这取决于我尝试在哪个glog版本中使用哪个g频标志版本。如图所示,出现了错误。

./src/glog/stl_logging.h:56:11:致命错误:“ext/slist”文件找不到# include “)

我发现了令人骄傲的信息

现在,glog的ABI环绕标志与g阻击兼容

现场,宣布glog 0.3.3 https://code.google.com/p/google-glog/

但我不知道哪个版本的旗子。(我觉得很奇怪,因为glog依赖于g标志)

代码语言:javascript
复制
# Install GFlags
ExternalProject_Add(
    GFlagsLib
    URL https://github.com/gflags/gflags/archive/master.zip
    CONFIGURE_COMMAND <SOURCE_DIR>/configure  --prefix=<INSTALL_DIR>
    )
ExternalProject_Get_Property(GFlagsLib install_dir)
include_directories(${install_dir}/include)
set(GFLAGS_LIBRARIES ${install_dir}/lib/libgflags.${link_library_suffix})
set(GFLAGS_PREFIX ${install_dir})

# Install GLog
ExternalProject_Add(
    GLogLib
    URL http://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
    CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> --with-gflags=${GFLAGS_PREFIX}
    )
ExternalProject_Get_Property(GLogLib install_dir)
EN

回答 1

Stack Overflow用户

发布于 2017-07-27 04:06:47

我知道这是个老问题,但我想我会尝试一下,以防来自未来的人有类似的问题。首先,看起来您正在从GitHub和glog从旧的Google托管站点中提取g旗子。在发布这个问题时,glog已经转移到GitHub,并发布了一个更新的版本(0.3.4)。这可能是不兼容的原因之一。

接下来,尽管CMake的ExternalProject_Add()函数对于包管理很有用,但它常常导致不得不通过ExternalProject_Get_Property()提交自己版本的find_package(),以标识后续目标的头和库位置。正如你所看到的,我也经历过同样的头痛,它会变得相当脆弱。

最近,我开始使用亨特包管理器来处理C++项目中的依赖关系,我可以推荐它作为一个很好的替代方案。我已经在我自己的项目中使用它来标记、日志和其他库。每个Hunter版本都锁定包版本(通过调用带有适当参数的HunterGate() ),以帮助确保成功和可重复的构建。

也许是由于来自Python (pip)和Node.js (npm)的竞争,C++包管理在最近有了很大的改进。如果你感兴趣的话,你也应该看看Conan.io (来自JFrog)和Buckaroo (来自Facebook)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33859677

复制
相关文章

相似问题

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