Компиляция и компоновка OpenSSL в Ubuntu против OSX
Попытка 1, Ванильная ссылка на LibraryI '
Я пытаюсь использовать исправленную версию OpenSSL (чтобы DTLS было проще в использовании). OpenSSL находится в
/usr/local/openssl-1.0.1c
В подпапке ./include/openssl есть множество заголовочных файлов (как я полагаю, это должно быть):
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
...
GCC ссылается на папку include и выдает ошибку - он не может найти SSL. Я'м, используя более или менеето же самое, что другие люди, Это работает на OSX (10.6), но не на 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.
Попытка 2, символическая ссылка на библиотеку в / usr / include
Итак, я пытаюсь создать символическую ссылку на OpenSSL в моем / usr / include:
sudo ln -s /usr/local/openssl-1.0.1c/include/openssl /usr/include/openssl
и повторная попытка компиляции:
~$ 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
Почему первый метод (т.е. без символической ссылки) не работает? Права доступа? Почему второй метод не работает? Почему это работает на OSX ???