Задать вопрос
@maksimwork1980

Как исправить «неопределённая ссылка на «http::server::server::run()»?

Установил libboost-all-dev через менеджер Apt.
Взял первый пример HTTP сервера на официальном сайте Boost (однако вопрос по CMake / Make)
Написал следующую конфигурацию CMake:
CMakeLists.txt
cmake_minimum_required(VERSION 3.22)

set(PROJECT_NAME "TestBoostHTTPServer")
add_executable(main main.cpp)
project(PROJECT_NAME)

set(Boost_USE_STATIC_LIBS        ON)
set(Boost_USE_MULTITHREADED      ON)
set(Boost_USE_STATIC_RUNTIME    OFF)

find_package(Boost COMPONENTS ALL REQUIRED)

include_directories(
    ${CMAKE_CURRENT_BINARY_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${Boost_INCLUDE_DIRS}
)

target_link_libraries(main
    ${Boost_LIBRARIES}
)

Сборка CMake успешна, но при сборке make выдаёт следующую ошибку линковки:
Терминал

maxsmg@MyPCSecondery:~/Projects/Boost/HttpServer/cmake-build$ make
-- Configuring done
-- Generating done
-- Build files have been written to: /home/maxsmg/Projects/Boost/HttpServer/cmake-build
Consolidate compiler generated dependencies of target main
[ 50%] Linking CXX executable main
/usr/bin/ld: CMakeFiles/main.dir/main.cpp.o: в функции «main»:
main.cpp:(.text+0x18f): неопределённая ссылка на «http::server::server::server(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)»
/usr/bin/ld: main.cpp:(.text+0x1f8): неопределённая ссылка на «http::server::server::run()»
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/main.dir/build.make:151: main] Ошибка 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/main.dir/all] Ошибка 2
make: *** [Makefile:91: all] Ошибка 2


Удаление следующих строк кода с установкой констант Boost:
CMakeLists.txt
set(Boost_USE_STATIC_LIBS        ON)
set(Boost_USE_MULTITHREADED      ON)
set(Boost_USE_STATIC_RUNTIME    OFF)

Не меняет проблему.
Что можно попробовать?
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Средний 5 комментариев
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Взял первый пример HTTP сервера на официальном сайте Boost
add_executable(main main.cpp)

В "первом примере HTTP сервера" по твоей ссылочке файлов-то существенно больше, не один только main.cpp. Ты бы их добавил как-нибудь в список исходников, а то немного странно получается, ты не находишь? Глядишь среди них где-то найдётся и исходник определяющий http::server::server::server.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы