Статическое связывание OpenSSL с Cmake всегда ссылается на libssl.so.1.1 вместо libssl.a.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Статическое связывание OpenSSL с Cmake всегда ссылается на libssl.so.1.1 вместо libssl.a.

Сообщение Anonymous »

Я использую cmake для создания своей программы. Я хочу статически связать OpenSSL с двоичными файлами. Текущий у меня есть этот CMakeLists.txt:

Код: Выделить всё

cmake_minimum_required(VERSION 3.0)
project(Sphere-Linked)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
#set(CMAKE_FIND_LIBRARY_SUFFIXES ".a;.so")

if (APPLE)
message(DEBUG "[OS] Apple")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lpthread")
elseif (UNIX)
message(DEBUG "[OS] Linux")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -luuid -lpthread -lssl")
endif()

add_executable(sphere-linked-server
server/main.cpp
server/config.hpp
server/config.cpp
server/connection.cpp
server/connection.hpp
server/message.cpp
server/message.hpp
server/shared.cpp
server/shared.hpp
server/opt.cpp
server/opt.hpp
server/socket_management.cpp
server/socket_management.hpp
)
add_executable(sphere-linked-client
client/main.cpp
client/message.cpp
client/message.hpp
client/config.hpp
client/connection.cpp
client/connection.hpp
client/shared.cpp
client/shared.hpp
client/opt.cpp
client/opt.hpp
client/socket_management.cpp
client/socket_management.hpp
)

set(OPENSSL_NO_SHARED TRUE)
set(OPENSSL_USE_STATIC_LIBS TRUE)
find_package(OpenSSL REQUIRED)
target_link_libraries(sphere-linked-server PRIVATE OpenSSL::SSL)
target_link_libraries(sphere-linked-client PRIVATE OpenSSL::SSL)

if (UNIX AND NOT APPLE)
find_library(UUID_LIB uuid REQUIRED)
target_link_libraries(sphere-linked-server PRIVATE ${UUID_LIB})
endif()
Однако двоичные файлы всегда содержат ссылки на libssl.so.1.1 вместо libssl.a (то же самое происходит и с libcrypto

Код: Выделить всё

jhean@debian-10:~$ ls /usr/lib/x86_64-linux-gnu/libssl.
libssl.a       libssl.so      libssl.so.1.1
jhean@debian-10:~$ ldd sphere-linked-client
linux-vdso.so.1 (0x00007fffc62fe000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f9a228bb000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9a2289a000)
libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f9a22807000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9a22684000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9a224c4000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9a22a47000)
libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f9a221d8000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9a221d1000)
jhean@debian-10:~$
Как вы можете видеть в CMakeLists.txt, я установил для OPENSSL_NO_SHARED и OPENSSL_USE_STATIC_LIBS значение TRUE, а для CMAKE_FIND_LIBRARY_SUFFIXES > в .a. Кроме того, я использовал PRIVATE каждую ссылку на библиотеку. Тем не менее, двоичные файлы по-прежнему предпочитают *.so.1.1

Подробнее здесь: https://stackoverflow.com/questions/793 ... d-of-libss
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Статическое свойство или статическое поле Readonly
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Cmake Ссылка на OpenSSL не дает неопределенной ссылки на функции openssl
    Anonymous » » в форуме C++
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Ссылка Cmake на OpenSSL сбой неопределенной ссылки на функции OpenSSL
    Anonymous » » в форуме C++
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Статическое связывание проекта с несколькими библиотеками с libstdС++?
    Anonymous » » в форуме C++
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Статическое связывание libsodium
    Anonymous » » в форуме C++
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»