Как я могу включить OpenSSL в мою программу Qt на Linux?

В моей программе Qt я должен преобразовать строку в хеш. Я хочу использовать OpenSSL на Debian. Небольшое резюме моего кода:

#include <openssl/sha.h>
...

unsigned char data[] = "data to hash";
unsigned char hash[SHA512_DIGEST_LENGTH];
SHA512(data, sizeof(data) - 1, hash);

Я установил openssl и libssl-dev. И я также изменил свой документ .pro, выглядит так:

TEMPLATE = app
QT = core gui

HEADERS += window.h
PKGCONFIG += openssl //found in another solution, but it does not work
LIBS += -L/usr/share/doc libssl-dev
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

SOURCES +=  main.cpp window.cpp

В LIBS я перепробовал все возможные локации sudo dpkg -L libssl-dev , Кто-нибудь чего мне не хватает? Это не компилируется, и я уверен, что об этом.

Благодарю.


Вот ошибка при связывании:

/usr/lib/x86_64-linux-gnu/qt4/bin/qmake -o Makefile App.pro
g++ -m64 -Wl,-O1 -o App main.o window.o moc_window.o    -L/usr/lib/x86_64-linux-gnu -L/usr/share/doc/libssl-dev -libssl-dev -lQtGui -lQtCore -lpthread
/usr/bin/ld: cannot find -libssl-dev
collect2: error: ld returned 1 exit status
Makefile:105: recipe for target 'App' failed
make: *** [App] Error 1

2

Решение

В общем, если библиотека libsomelib.so Вы должны импортировать это используя —lsomelibи в вашем случае, предполагая, что вы установили его с помощью системных инструментов, нет необходимости передавать ему путь, просто добавьте следующее, так как библиотека libssl.so:

LIBS += -lssl -lcrypto

или вы также можете использовать pkg-config:

PKGCONFIG += libssl

где /usr/lib/pkgconfig/libssl.pc является:

prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: OpenSSL-libssl
Description: Secure Sockets Layer and cryptography libraries
Version: 1.1.0g
Requires.private: libcrypto
Libs: -L${libdir} -lssl
Libs.private: -ldl
Cflags: -I${includedir}
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]