Poco C++ статическая сборка

Рейтинг: 1Ответов: 0Опубликовано: 17.05.2023

Нужно сделать статическую сборку библиотеки Poco для С++, в общем я склонировал репозиторий Poco с официального git, и ввёл следующие команды:

./configure --static --no-tests --no-samples
make

Создалась папка "lib", где лежат .a файлы для подключения в свой проект. Путь таков: lib/Linux/x86_64/libPocoX.a где x - название нужного мне модуля. Например мне нужен модуль Foundation, то это будет lib/Linux/x86_64/libPocoFoundation.a.

Далее я пытался подключить эти файлы в свой проект, написал данный CMakeLists:

cmake_minimum_required(VERSION 3.16)
project(ots_grunt)

set(CMAKE_CXX_STANDARD 14)
add_definitions( -DPOCO_STATIC )
option(BUILD_SHARED_LIBS OFF)

# Исходные файлы
file(GLOB_RECURSE SOURCES "main.cpp" "src/*.cpp" "src/*.h")

add_executable(ots_grunt ${SOURCES})

target_link_libraries(${PROJECT_NAME}
    /home/atfaive/poco/lib/Linux/x86_64/libPocoUtil.a
    /home/atfaive/poco/lib/Linux/x86_64/libPocoNetSSL.a
    /home/atfaive/poco/lib/Linux/x86_64/libPocoJSON.a
    /home/atfaive/poco/lib/Linux/x86_64/libPocoNet.a
    /home/atfaive/poco/lib/Linux/x86_64/libPocoFoundation.a
    /home/atfaive/poco/lib/Linux/x86_64/libPocoXML.a
    /home/atfaive/poco/lib/Linux/x86_64/libPocoData.a
    /home/atfaive/poco/lib/Linux/x86_64/libPocoPrometheus.a
)

Но при сборке у меня пошли ошибки такого рода:

  1. Session.cpp:(.text+0x17): undefined reference to SSL_SESSION_free' /usr/bin/ld: /home/atfaive/poco/lib/Linux/x86_64/libPocoNetSSL.a(Session.o): in function Poco::Net::Session::~Session()':
  2. /usr/bin/ld: Thread.cpp:(.text+0xe35): undefined reference to `pthread_sigmask'

Ответы

Ответов пока нет.