Cố gắng 1, Vanilla Liên kết Thư việnBiên soạn và liên kết OpenSSL trên Ubuntu vs OSX
Tôi đang cố gắng sử dụng một phiên bản vá của OpenSSL (vì vậy DTLS là dễ dàng hơn để sử dụng). OpenSSL là trong
/usr/local/openssl-1.0.1c
Các thư mục con ./include/openssl có một tấn các tập tin tiêu đề (như tôi cho rằng nó nên):
lrwxrwxrwx 1 root root 22 Dec 25 05:49 aes.h -> ../../crypto/aes/aes.h
lrwxrwxrwx 1 root root 24 Dec 25 05:49 asn1.h -> ../../crypto/asn1/asn1.h
lrwxrwxrwx 1 root root 28 Dec 25 05:49 asn1_mac.h -> ../../crypto/asn1/asn1_mac.h
...
liên kết GCC vào thư mục bao gồm và mang lại cho tôi một sai sót nó không thể tìm thấy SSL. Tôi đang sử dụng nhiều hơn hoặc ít hơn the same thing other people are. Công trình này, trên OSX (10.6), nhưng không phải trên Ubuntu:
~$ gcc -L/usr/local/openssl-1.0.1c/include -lssl -lcrypto -o server server.c
server.c:20:25: fatal error: openssl/ssl.h: No such file or directory
compilation terminated.
Cố gắng 2, Symbolic Link vào Thư viện trong/usr/include
Vì vậy, sau đó tôi cố gắng tạo ra một liên kết tượng trưng đến OpenSSL trong tôi/usr/include:
sudo ln -s /usr/local/openssl-1.0.1c/include/openssl /usr/include/openssl
và tái cố gắng biên soạn:
~$ gcc -L/usr/local/openssl-1.0.1c/include -lssl -lcrypto -o server server.c
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
collect2: ld returned 1 exit status
make: *** [server] Error 1
Tại sao phương pháp đầu tiên (tức là không có liên kết tượng trưng) không hoạt động? Quyền? Tại sao phương pháp thứ hai không hoạt động? Tại sao tính năng này hoạt động trên OSX ???