Повышение статической библиотеки 1.67 с помощью cmake и travis - PullRequest
0 голосов
/ 23 марта 2019

H-e-l-l-o каждый. Я пытаюсь собрать свой c ++ - проект с помощью cmake и boost 1.67 в travis-ci. Ниже приведены исходные файлы.

На моем linux-компьютере установлены cmake 3.13.4 из исходников и boost-1.67 из исходников, все библиотеки (статические и динамические) находятся в каталоге "/ usr / local / lib /" и все отлично работает , Но в travis-ci я каждый раз вижу это сообщение:

Unable to find the requested Boost libraries.
  Boost version: 1.67.0
  Boost include path: /usr/include
  Could not find the following static Boost libraries:
          boost_program_options
  No Boost libraries were found.  You may need to set BOOST_LIBRARYDIR to the
  directory containing Boost libraries or BOOST_ROOT to the location of
  Boost.

файл yml:

language: cpp
dist: xenial
sudo: false
os: linux


matrix:
  include:
    - env: COMPILER=g++-8 BUILD=Debug STANDARD=14
      compiler: gcc
      addons:
        apt:
          update: true
          sources:
            - sourceline: 'ppa:mhier/libboost-latest'
            - ubuntu-toolchain-r-test
          packages:
            - g++-8
            - boost1.67
    - env: COMPILER=g++-8 BUILD=Release STANDARD=14
      compiler: gcc
      addons:
        apt:
          update: true
          sources:
            - sourceline: 'ppa:mhier/libboost-latest'
            - ubuntu-toolchain-r-test
          packages:
            - g++-8
            - boost1.67

before_script:
  - wget https://cmake.org/files/v3.13/cmake-3.13.4-Linux-x86_64.sh
  - sudo sh cmake-3.13.4-Linux-x86_64.sh -- --skip-license --prefix=/usr

script:
  - cmake .
  - cmake --build .
  - cmake --build . --target package

cmake:

cmake_minimum_required(VERSION 3.10)  
project(hcch VERSION 0.1.${VERSION_BUILD})

set(BOOST_ROOT /usr/include/boost/)

# For my linux
#set(BOOST_LIBRARYDIR /usr/local/lib)

# For travis-ci host
set(BOOST_LIBRARYDIR /usr/lib/x86_64-linux-gnu)

set(Boost_USE_STATIC_LIBS ON)
include_directories (${Boost_INCLUDE_DIRS})
link_directories (${Boost_LIBRARY_DIRS})

find_package(Boost 1.67 COMPONENTS program_options REQUIRED)
find_package(LLVM REQUIRED CONFIG)

configure_file (
        "${PROJECT_SOURCE_DIR}/version.h.in"
        "${PROJECT_BINARY_DIR}/version.h"
)

set(CMAKE_CXX_STANDARD 14)

add_executable(hcch hcch.cpp SourcesCreator.cpp SourcesCreator.h)

set_target_properties(hcch PROPERTIES
        CXX_STANDARD 14
        CXX_STANDARD_REQUIRED ON
        COMPILE_OPTIONS -Wpedantic -Wall -Wextra
        )

TARGET_LINK_LIBRARIES( hcch ${BOOST_LIBRARYDIR}/libboost_program_options.a )

Может быть, статические библиотеки не устанавливаются из ppa: mhier / libboost-latest? Подскажите, как это исправить, если кто-то сталкивался.

Это мой проект https://github.com/angelskieglazki/hcch привет, макс

1 Ответ

1 голос
/ 03 июля 2019

Я могу подтвердить, что сборка libboost из ppa: mhier / libboost-latest в настоящее время не собирает статические библиотеки, только для общего доступа.

Если необходимо, чтобы вы использовали версию Boost позже, чем то, что предоставляетсяlibboost-all-dev, то вам нужно будет скомпилировать надстройку из исходного кода, хотя вы рискуете потерять время.Инструкции для этого можно найти в Руководстве по лучшей практике Boost .

...