【问题标题】:Why boost log not found?为什么找不到提升日志?
【发布时间】:2017-11-10 12:52:28
【问题描述】:

我在语言环境机器上成功构建了我的项目,但是当我在 Travis 中上传我的构建时,我看到了这个:

/usr/share/cmake-3.2/Modules/FindBoost.cmake:1182 处的 CMake 错误 (消息):

找不到请求的 Boost 库。

增强版本:1.46.1

Boost 包含路径:/usr/include

找不到以下静态 Boost 库:

boost_log

找到了一些(但不是全部)所需的 Boost 库。你 可能

需要安装这些额外的 Boost 库。或者, 设置

BOOST_LIBRARYDIR 到包含 Boost 库的目录或 BOOST_ROOT

到 Boost 的位置。

调用堆栈(最近调用优先):

CMakeLists.txt:18 (find_package)

-- 配置不完整,出现错误!

我很多次在谷歌搜索这个错误,但我没有找到答案。我的 CMakeList 文件是这样的:

cmake_minimum_required(VERSION 3.2)
project(Recast-server)

set(CMAKE_CXX_STANDARD 14)

file(GLOB_RECURSE SOURCE_FILES
        "src/*.h"
        "src/*.c"
        "src/*.cpp")

include_directories(src/headers/)

set(Boost_USE_STATIC_LIBS   ON)
set(Boost_USE_MULTITHREADED ON)

add_definitions(-DBOOST_LOG_DYN_LINK)

find_package(Boost 1.46 COMPONENTS  system
                                    thread
                                    log
                                    log_setup
                                    program_options
                                    filesystem
             REQUIRED)
include_directories(${Boost_INCLUDE_DIR})

add_executable(Recast-server ${SOURCE_FILES})

target_link_libraries(Recast-server ${Boost_LIBRARIES})
target_link_libraries(Recast-server ${CMAKE_THREAD_LIBS_INIT})

您也可以在此 PullRequest 中询问(或尝试提交):https://github.com/bender-wardrobe/Recast/pull/15

非常感谢您的回答

【问题讨论】:

标签: c++ ubuntu boost cmake travis-ci


【解决方案1】:

如果我没记错的话,Boost.Log 只是在更高版本的 Boost 中添加的。

对于早期版本的 Boost,您可以使用来自 http://boost-log.sf.net 的独立 Boost.Log

编辑

您在 CMakeLists.txt 中设置了 1.46 版本。也许尝试更高版本。不知道 Travis。

【讨论】:

  • 好的...我怎样才能用 travis 安装新版本的 Boost?有 PPA 吗?
  • 但是在本地机器上正在编译。
  • 在 travis Ubuntu 12.04 上
  • Ubuntu 12.04 相当旧,所以我猜默认安装的 Boost 是非常旧的 1.46。
  • 您可以手动安装更新的 boost 版本,而不是使用包管理器提供的版本。
猜你喜欢
  • 1970-01-01
  • 2013-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-04
  • 2017-02-23
  • 2012-10-24
  • 1970-01-01
相关资源
最近更新 更多