Openssl编译错误

我使用openssl库在C代码中包含了以下头文件。

#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <time.h> #ifdef __VMS #include <in.h> #include <inet.h> #else #include <netinet/in.h> #include <arpa/inet.h> #endif #include <openssl/crypto.h> #include <openssl/ssl.h> #include <openssl/err.h> 

然后我用gcc -o openssl -lssl -lcrypt openssl.c编译这个程序在我的办公室里,这个代码编译和运行正常,但是在我的系统里(linux-debian 6在办公室和Ubuntu 12.04在家里)以下错误:

 /tmp/ccZcmLk4.o: In function `main': server.c:(.text+0x3d): undefined reference to `SSL_library_init' server.c:(.text+0x42): undefined reference to `SSL_load_error_strings' server.c:(.text+0x47): undefined reference to `SSLv3_method' server.c:(.text+0x57): undefined reference to `SSL_CTX_new' server.c:(.text+0x6f): undefined reference to `ERR_print_errors_fp' server.c:(.text+0x97): undefined reference to `SSL_CTX_use_certificate_file' server.c:(.text+0xa8): undefined reference to `ERR_print_errors_fp' server.c:(.text+0xd0): undefined reference to `SSL_CTX_use_PrivateKey_file' server.c:(.text+0xe1): undefined reference to `ERR_print_errors_fp' server.c:(.text+0xf9): undefined reference to `SSL_CTX_check_private_key' server.c:(.text+0x154): undefined reference to `SSL_CTX_load_verify_locations' server.c:(.text+0x165): undefined reference to `ERR_print_errors_fp' server.c:(.text+0x18d): undefined reference to `SSL_CTX_set_verify' server.c:(.text+0x1a1): undefined reference to `SSL_CTX_set_verify_depth' server.c:(.text+0x397): undefined reference to `SSL_new' server.c:(.text+0x3c2): undefined reference to `SSL_set_fd' server.c:(.text+0x3ce): undefined reference to `SSL_accept' server.c:(.text+0x3e6): undefined reference to `ERR_print_errors_fp' server.c:(.text+0x3fe): undefined reference to `SSL_get_current_cipher' server.c:(.text+0x406): undefined reference to `SSL_CIPHER_get_name' server.c:(.text+0x42e): undefined reference to `SSL_get_peer_certificate' server.c:(.text+0x455): undefined reference to `X509_get_subject_name' server.c:(.text+0x46d): undefined reference to `X509_NAME_oneline' server.c:(.text+0x4b1): undefined reference to `X509_get_issuer_name' server.c:(.text+0x4c9): undefined reference to `X509_NAME_oneline' server.c:(.text+0x50d): undefined reference to `X509_free' server.c:(.text+0x593): undefined reference to `SSL_write' server.c:(.text+0x5ab): undefined reference to `ERR_print_errors_fp' server.c:(.text+0x5d3): undefined reference to `SSL_read' server.c:(.text+0x5eb): undefined reference to `ERR_print_errors_fp' collect2: ld returned 1 exit status 

我知道这是由于我的家用电脑中缺less某些库。 但任何人都可以告诉我,我需要为此安装哪些库? 提前致谢。

将源文件放在源文件之后:

 gcc -o openssl openssl.c -lssl -lcrypt 

请参阅: http : //www.network-theory.co.uk/docs/gccintro/gccintro_18.html

把文件名放在-l选项之前