2013-05-19 69 views
4

我試圖在Android上使用SSL/TLS支持構建PJSIP。Android使用openssl構建PJSIP

我成功構建了OpenSSL,後面this answer(沒有fips,作爲shared-.so庫),並將其安裝在〜/ android(創建〜/ android/ssl目錄)中。

現在,當我這樣做

./configure-android --with-ssl=/home/andrea/android/ssl 

,並期待在的config.log,第一個錯誤狀態

<ndk-directories-and-stuff>/arm-linux-androideabi/bin/ld: warning: libdl.so, needed by /home/andrea/android/ssl/lib/libcrypto.so, not found (try using -rpath or -rpath-link) 

很多未定義的引用遵循。

至於後果SSL支持被禁用:

aconfigure:7012: result: ** OpenSSL libraries not found, disabling SSL support ** 
ac_cv_header_openssl_ssl_h=yes 
ac_cv_lib_ssl_SSL_library_init=no 
CFLAGS=' -I/home/andrea/android/android-ndk-r8e/platforms/android-14/arch-arm/usr/include -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 -I/home/andrea/android/ssl/include' 
LDFLAGS=' -nostdlib -L/home/andrea/android/android-ndk-r8e/platforms/android-14/arch-arm/usr/lib/ -L/home/andrea/android/ssl/lib' 
ac_no_ssl='' 
libssl_present='' 
openssl_h_present='1' 

但在NDK的目錄libdl.so存在:

<ndk-dir>/platforms/android-14/arch-arm/usr/lib/ 

我想我必須告訴LD在其他庫, 什麼ld的建議是什麼意思?

try using -rpath or -rpath-link 

我不明白什麼-rpath或rpath-link是或在哪裏應用它們。

有什麼想法?

回答

2

我用OpenSSL成功構建了PJSIP。請按照以下步驟操作:

首先下載openssl-android並通過閱讀ReadMe文件進行編譯。 (把你android-ndkPATHopenssl-android根用戶身份執行命令ndk-build)則剛剛從libs/armeabi/文件夾中的openssl-android根複製libcrypto.solibssl.solib/文件夾(你可以創建該文件夾)。現在你的目錄結構應該是這樣的:
openssl-android/
->apps
->crypto
->include
->jni
->lib
->libs
->...

現在只是在執行PJSIP的根目錄下:
./configure-android --with-ssl=/home/your-user-name/path-to-openssl-android-dir

確認OpenSSL是否包含只是管道此命令到grep,如:
./configure-android --with-ssl=/home/your-user-name/path-to-openssl-android-dir | grep -wi ssl

然後你會看到這條線result: OpenSSL library found, SSL support enabled。這意味着,現在爲您的PJSIP啓用了OpenSSL。現在你可以繼續正常。

希望這有助於。

+0

嗨moonzai,我跟着你的腳步,在這裏工作。但因爲我需要在較低配置的設備(如API-9或API-11)上使用SSL構建pjsip。所以請指導我如何去做。真的會幫助我很多。 –

+0

hi @Johnsmith,很高興聽到它幫助你。根據我的經驗,它應該完美地在這些API級別上工作。如果您面臨錯誤,請告訴我。 – moonzai