Poco C++ статическая сборка
Нужно сделать статическую сборку библиотеки 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
)
Но при сборке у меня пошли ошибки такого рода:
- 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()': - /usr/bin/ld: Thread.cpp:(.text+0xe35): undefined reference to `pthread_sigmask'
Источник: Stack Overflow на русском