Компиляция файла C в Solaris с OpenSSL включает

Я пытаюсь скомпилировать написанный мною C-файл, в котором есть include #include <openssl/evp.h> в Solaris 10. Системные файлы OpenSSL (включая evp.h) расположены в /usr/local/ssl/include/openssl, но я не могу их подобрать, выполнив следующую команду:

gcc -O2 -fPIC -shared -static-libgcc -I$JAVA_HOME/include -I$JAVA_HOME/include/solaris -m64 -lcrypto -lm -std=c99 -o libencrypt64.so encrypt.c

Я пробовал добавить путь к заголовкам к LD_LIBRARY_PATH и PATH, но все равно получаю те же ошибки:

encrypt.c:54:25: openssl/evp.h: No such file or directory

... и связанные с ним ошибки типа не найдены.

Кто-нибудь может сказать мне, где я ошибаюсь, пожалуйста?


person MeanwhileInHell    schedule 24.09.2013    source источник
comment
Предоставляемые ОС файлы OpenSSL расположены в /usr/sfw - все, что находится в /usr/local, является локальным добавлением, сделанным на вашем сайте.   -  person alanc    schedule 25.09.2013


Ответы (1)


Я никогда раньше не видел, чтобы $ JAVA_HOME явно вводил команду gcc. Какое должно быть значение $ JAVA_HOME?

Можете попробовать добавить нужный путь прямо в команду gcc? Просто добавь

-I/usr/local/ssl/include

person Digital Trauma    schedule 24.09.2013
comment
Переменная JAVA_HOME просто указывает на системный JDK для получения заголовков JNI (я разработчик Java, не очень опытный в C). В любом случае, ваш ответ помог (вместе с удалением флага -m64). Большое спасибо! - person MeanwhileInHell; 24.09.2013