2013-09-24 33 views
0

我想編譯一個C文件,我已經在Solaris 10上編寫了包含#include <openssl/evp.h>的C文件。系統OpenSSL文件(包括evp.h)位於/usr/local/ssl/include/openssl下,但我可以'噸得到他們拿起運行以下命令:使用OpenSSL在Solaris上編譯C文件包括

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_PATHPATH的路徑信息,但是仍然得到了同樣的錯誤:

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

...和關聯類型的不是發現錯誤。

任何人都可以告訴我哪裏出錯了嗎?

+0

操作系統提供的OpenSSL文件位於'在/ usr/sfw' - 下'在/ usr/local'什麼是你的網站做了一個本地的補充。 – alanc

回答

0

我從來沒有見過$ JAVA_HOME顯式放入gcc命令之前。 $ JAVA_HOME應該是什麼值?

你可以嘗試直接添加必要的路徑到gcc命令嗎?只需添加

-I/usr/local/ssl/include

+0

'JAVA_HOME'變量只是指向系統JDK以獲取JNI頭文件(我是Java開發人員,在C中不是很經驗豐富)。無論如何,你的答案是訣竅(除去-m64標誌)。非常感謝! – MeanwhileInHell