1

Конечная цель: поиграть с RTL-SDR в GNURadio Companion

Следуя инструкциям на этой странице, я столкнулся с ошибками, связанными с библиотеками Boost C++. При сборке блоков gr-osmosdr для использования в GNURadio, cmake не может завершиться, потому что не может найти Boost, который определенно установлен. Версия 1.57.

Last metadata expiration check performed 1:27:21 ago on Thu Jul 28 15:01:40 2016.
Package boost-1.57.0-6.fc22.x86_64 is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!

В частности, сообщение об ошибке, которое я получаю, выглядит так ...

-- Detecting C compile features - done
-- Build type not specified: defaulting to release.
-- Found Git: /usr/bin/git (found version "2.4.11") 
-- Extracting version information from git describe...
-- Configuring Boost C++ Libraries...
-- Could NOT find Boost
CMake Error at CMakeLists.txt:125 (message):
  Boost required to build gr-osmosdr

Код в CMakeLists.txt относительно Boost является ...

########################################################################
# Setup boost
########################################################################
MESSAGE(STATUS "Configuring Boost C++ Libraries...")

# Although not required on my system, some users have linking issues without
SET(BOOST_REQUIRED_COMPONENTS
    thread
    system
)

if(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64")
    list(APPEND BOOST_LIBRARYDIR "/usr/lib64") #fedora 64-bit fix
endif(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64")

set(Boost_ADDITIONAL_VERSIONS
    "1.35.0" "1.35" "1.36.0" "1.36" "1.37.0" "1.37" "1.38.0" "1.38" "1.39.0" "1.39"
    "1.40.0" "1.40" "1.41.0" "1.41" "1.42.0" "1.42" "1.43.0" "1.43" "1.44.0" "1.44"
    "1.45.0" "1.45" "1.46.0" "1.46" "1.47.0" "1.47" "1.48.0" "1.48" "1.49.0" "1.49"
    "1.50.0" "1.50" "1.51.0" "1.51" "1.52.0" "1.52" "1.53.0" "1.53" "1.54.0" "1.54"
    "1.55.0" "1.55" "1.56.0" "1.56" "1.57.0" "1.57" "1.58.0" "1.58" "1.59.0" "1.59"
    "1.60.0" "1.60" "1.61.0" "1.61" "1.62.0" "1.62" "1.63.0" "1.63" "1.64.0" "1.64"
    "1.65.0" "1.65" "1.66.0" "1.66" "1.67.0" "1.67" "1.68.0" "1.68" "1.69.0" "1.69"
)

find_package(Boost COMPONENTS ${BOOST_REQUIRED_COMPONENTS})

if(NOT Boost_FOUND)
    message(FATAL_ERROR "Boost required to build " ${CMAKE_PROJECT_NAME})
endif()

ADD_DEFINITIONS(-DBOOST_ALL_DYN_LINK)

Наверное, просто нужно указать одну вещь на другую. Но я не знаю, что к чему.

1 ответ1

0

Как правило, в Fedora пакеты включают библиотеки времени выполнения, но не содержат информацию заголовка и другие вещи, которые могут вам понадобиться для их компиляции. Для этого вам нужен соответствующий пакет -devel .

В этом случае:

sudo dnf install boost-devel

должен сделать это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .