Jump to content
Ang3lo

OpenSSL + Netbeans + Ubuntu

Recommended Posts

Ang3lo

Boas pessoal,

Estou com um  problema no Ubuntu 11.10 + Netbeans 7.01 porque não consigo compilara o meu projecto que usa

openssl.

Instalei via linha de comandos o "libssl-dev" e com o comando  'pkg-config --libs openssl' ele retorna '-lssl -lcrypto',

por isso, suponho que neste campo esteja tudo bem instalado certo?

Ao compilar o projecto recebo sempre estas mensagens

main.c:(.text+0x11d): undefined reference to `SSL_load_error_strings'
main.c:(.text+0x122): undefined reference to `SSL_library_init'
main.c:(.text+0x127): undefined reference to `SSLv23_client_method'
main.c:(.text+0x12f): undefined reference to `SSL_CTX_new'
main.c:(.text+0x14c): undefined reference to `ERR_print_errors_fp'
main.c:(.text+0x15a): undefined reference to `SSL_new'
main.c:(.text+0x177): undefined reference to `ERR_print_errors_fp'
main.c:(.text+0x18e): undefined reference to `SSL_set_fd'
main.c:(.text+0x19f): undefined reference to `ERR_print_errors_fp'
main.c:(.text+0x1ad): undefined reference to `SSL_connect'
main.c:(.text+0x1bf): undefined reference to `ERR_print_errors_fp'

Pelo que andei a ler deve ser problema do linker ou assim, mas não sei como o resolver.

Alguém sabe como resolver isto? Obrigado

Share this post


Link to post
Share on other sites
Baderous

É possível que tenhas de linkar aquelas 2 bibliotecas no comando de compilação:

gcc *blablabla* -lssl -lcrypto

No *blablabla* metes o resto das coisas.

Share this post


Link to post
Share on other sites
Ang3lo

Obrigado, eu devia ter colocado o output todo mas aqui vai. Eu já tentei antes de criar o topico ver nas opções do projecto

e principalmente nas opções do compilador para colocar esses argumentos. Mas mesmo assim sem sucesso.

Ele tá a compilar do seguinte modo como

gcc -Wall -lssl -lcrypto    -o dist/Debug/GNU-Linux-x86/ssl_demo build/Debug/GNU-Linux-x86/main.o -L/usr/include/openssl

build/Debug/GNU-Linux-x86/main.o: In function `sslConnect':

"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .clean-conf
make[1]: Entering directory `/home/ang3lo/NetBeansProjects/ssl_demo'
rm -f -r build/Debug
rm -f dist/Debug/GNU-Linux-x86/ssl_demo
make[1]: Leaving directory `/home/ang3lo/NetBeansProjects/ssl_demo'

CLEAN SUCCESSFUL (total time: 116ms)
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `/home/ang3lo/NetBeansProjects/ssl_demo'
"/usr/bin/make"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/ssl_demo
make[2]: Entering directory `/home/ang3lo/NetBeansProjects/ssl_demo'
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/main.o.d
gcc -Wall -lssl -lcrypto   -c -I/usr/include/openssl -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.c
mkdir -p dist/Debug/GNU-Linux-x86
gcc -Wall -lssl -lcrypto    -o dist/Debug/GNU-Linux-x86/ssl_demo build/Debug/GNU-Linux-x86/main.o -L/usr/include/openssl 
build/Debug/GNU-Linux-x86/main.o: In function `sslConnect':
main.c:(.text+0x11d): undefined reference to `SSL_load_error_strings'
main.c:(.text+0x122): undefined reference to `SSL_library_init'
main.c:(.text+0x127): undefined reference to `SSLv23_client_method'
main.c:(.text+0x12f): undefined reference to `SSL_CTX_new'
main.c:(.text+0x14c): undefined reference to `ERR_print_errors_fp'
main.c:(.text+0x15a): undefined reference to `SSL_new'
main.c:(.text+0x177): undefined reference to `ERR_print_errors_fp'
main.c:(.text+0x18e): undefined reference to `SSL_set_fd'
main.c:(.text+0x19f): undefined reference to `ERR_print_errors_fp'
main.c:(.text+0x1ad): undefined reference to `SSL_connect'
main.c:(.text+0x1bf): undefined reference to `ERR_print_errors_fp'
build/Debug/GNU-Linux-x86/main.o: In function `sslDisconnect':
main.c:(.text+0x206): undefined reference to `SSL_shutdown'
main.c:(.text+0x214): undefined reference to `SSL_free'
main.c:(.text+0x22c): undefined reference to `SSL_CTX_free'
build/Debug/GNU-Linux-x86/main.o: In function `sslRead':
main.c:(.text+0x2f3): undefined reference to `SSL_read'
build/Debug/GNU-Linux-x86/main.o: In function `sslWrite':
main.c:(.text+0x3a4): undefined reference to `SSL_write'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/ssl_demo] Error 1
make[2]: Leaving directory `/home/ang3lo/NetBeansProjects/ssl_demo'
make[1]: *** [.build-conf] Error 2
make[1]: Leaving directory `/home/ang3lo/NetBeansProjects/ssl_demo'
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 668ms)

Share this post


Link to post
Share on other sites
Flinger

assim há primeira não vejo nada que possa faltar. Só se o que instalaste não foi a mesmo a libssl-dev. Além disso, no ubunto com pkg? Experimenta tentar procurar com o apt-get ou com o package manager (interface gráfica).

Não tenho aqui a minha máquina com o ubuntu, por isso não te posso dar indicações mais precisas.

Share this post


Link to post
Share on other sites
Ang3lo

Flinger quando dizes interface gráfica referes-te a que interface gráfica? É que não percebi...

Já me disseram que o erro podia ser no modo como o Netbeans está a compilar, ou seja, a ordem dos argumentos esta errada e devia antes estar assim:

gcc -Wall -c -I/usr/include/openssl -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.c -lssl -lcrypto

Mas já estive a tentar nas opções do projecto do Netbeans para o tentar colocar a compilar dessa maneira mas não consegui. Não sei como

e onde as deva colocar.

Share this post


Link to post
Share on other sites
Flinger

Desculpa, como disse não tinha a máquina com o ubuntu comigo. É o Synaptic: System->Administration->Synaptic Package Manager.

O melhor é instalares o que te estiver por instalar (excepto bindings), mas o mais importante é mesmo o libssl-dev.

Podes também experimentar compilar pela linha de comandos: Abres um terminal e vais para o directório onde tens os ficheiros do projecto, e depois bates manualmente qualquer coisa como:

gcc -Wall -I/usr/include/openssl -o  build/Debug/GNU-Linux-x86/main ./main.c -lssl -lcrypto

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.