У меня есть версия OpenSSL предварительно установлена в Ubuntu 14.04поддержка OpenSSL для DTLS v1.2
OpenSSL 1.0.1f 6 Jan 2014
Это самая последняя из доступных в Ubuntu. Теперь вопрос после SSL_library_init();
я призвал DTLSv1_2_client_method();
, когда я составил код он показал:
DTLS_test.c:20:12: warning: assignment makes pointer from integer without a cast [enabled by default]
method = DTLSv1_2_client_method();
^
/tmp/ccRUlnEu.o: In function `init_lib':
DTLS_test.c:(.text+0x13): undefined reference to `DTLSv1_2_client_method'
collect2: error: ld returned 1 exit status
Но если я изменяю method = DTLSv1_client_method();
Это только показывает предупреждение, связанные с литой
DTLS_test.c:20:12: warning: assignment makes pointer from integer without a cast [enabled by default]
method = DTLSv1_2_client_method();
^
приведен фрагмент кода следует:
#include <openssl/ssl.h>
#include <openssl/bio.h>
#include <openssl/err.h>
#include <openssl/rand.h>
#include <openssl/dtls1.h>
#include "DTLS_test.h"
void init_lib (void) {
if(SSL_library_init()) {
printf("\n[OK] SSL library initialized");
}
else {
printf("\n[ERROR] SSL library initiate FAILED !");
exit(0);
}
SSL_METHOD *method = NULL;
method = DTLSv1_2_client_method();
SSL_CTX *ctx = NULL;
ctx = SSL_CTX_new(method);
if(ctx != NULL) {
printf("\n[OK] SSL Method created");
}
else {
printf("\n[ERROR] SSL Method FAILED !");
exit(0);
}
}
void main (void) {
init_lib();
printf("\n");
}
Я загрузил источник openssl из git, а также i nstalled, но версия openssl не изменилась. И я не смог скомпилировать. Кто-нибудь предлагает любое исправление?
Я скачал 1.0.2 с OpenSSL и установил его. Теперь команда openssl version показывает мне: OpenSSL 1.0.2e 3 декабря 2015 г. Но проблема все еще существует. Я скомпилировал с -lss и -lcrypto – Zim
Я обновился до OpenSSL 1.1.0-pre2-dev xx XXX xxxx, но проблема все еще существует gcc DTLS_test.c -I/usr/local/ssl/-lssl -lcrypto -o DTLS_test – Zim
Попробуйте: gcc DTLS_test.c -I/usr/local/ssl/include -L/usr/local/ssl/lib -o DTLS_test -lcrypto -lssl –