當前位置:首頁 » 編程軟體 » 安卓編譯報錯openssl

安卓編譯報錯openssl

發布時間: 2023-08-26 12:41:27

① 已安裝OpenSSL,但編譯其他軟體的時候出現configure: error: openssl not found

要裝openssl的開發包
sudo apt-get install libssl-dev

② 編譯時缺少openssl/md5.h該怎麼處理

最近需要安裝openssl,需要使用openssl/md5.h這個頭文件,可是使用Ubuntu的apt-get install openssl安裝橡首,沒有這個文件,連urs/include/openssl都沒,經過一天的查找資料都沒解決,最後想到了使用源碼安裝openssl,最終解決了。
參考 http://www.linuxidc.com/Linux/2011-10/45738.htm
OpenSSL 是一款開源的 SSL 軟體包,採用 SSL 的公開密鑰技術,用於實現傳輸層的通信加密功能。OpenSSL 支持 Linux、Windows、BSD、Mac 等平台,功能強大,包含豐富的讓氏密碼演算法庫,SSL 協議庫和應用程序。
一、SSL 基本常識 1.1、什麼是 SSL?
安全套接層(Secure Sockets Layer,SSL), 最初由 netscape 公司設計,建立在傳輸層的安全通信協議,採用公開密鑰體系的證書認證方式來確保客戶端和 SSL 伺服器之間梁滑數的通信安全。
1.2、SSL 認證流程
SSL 客戶端在 TCP 連接建立之後,發出一個消息(包含了客戶端所支持的演算法列表)給伺服器端,然後伺服器端返回一個數據包(確定了這次通信所需演算法)和 SSL 伺服器端的證書(包含了公鑰)給客戶端。客戶端隨後會用收到的公鑰將消息加密再傳送,該加密消息只能用 SSL 伺服器端私鑰解密,即便中途被截取也無法獲知內容。
二、編譯安裝 OpenSSL 2.1、准備工作
系統版本:Ubuntu-10.10-Server-I386
更新源:apt-get update
升級軟體:apt-get upgrade
更新系統:apt-get dist-upgrade
2.2、查看OpenSSL版本
部分 Linux 系統已默認安裝了 OpenSSL 0.9.8,特別是 VPS 一般都安裝了。
openssl version -a
2.3、安裝基礎編譯環境
apt-get install build-essential
2.3、編譯安裝 Zlib 庫(這一步我沒有成功,但是也成功安裝了openssl)
wget http://zlib.net/zlib-1.2.5.tar.gz
tar -zxf zlib-1.2.5.tar.gz
cd zlib-1.2.5/
./configure --prefix=/usr/local
make && make install
2.4、卸載舊版本 OpenSSL
apt-get purge openssl
rm -rf /etc/ssl #刪除配置文件
2.5、編譯與安裝 OpenSSL
prefix 是安裝目錄,openssldir 是配置文件目錄,另外建議安裝兩次,shared 作用是生成動態連接庫。

wget ftp://ftp.openssl.org/source/openssl-1.0.0c.tar.gz
tar -zxf openssl-1.0.0c.tar.gz
cd openssl-1.0.0c/
./config --prefix=/usr/local --openssldir=/usr/local/ssl
make && make install
./config shared --prefix=/usr/local --openssldir=/usr/local/ssl
make clean
make && make
進一步的配置可參考《OpenSSL-0.9.8g 安裝與配置指南》http://www.linuxidc.com/Linux/2011-10/45737.htm

③ OpenSSL的編譯和使用

個人博客地址: https://blog.yookingh.cn
該文章地址: https://blog.yookingh.cn/dev/201215-openssl.html

從NDK r19開滑知始,由於gcc兼容clang的編譯方式有問題,該版本乎高已經移除了相關gcc文件,所以用老方法交叉編譯Openssl的時候,會提示找不到gcc文件。

參考: https://blog.csdn.net/zoujin6649

build-android-single.sh 腳本文件及注釋如下歲讓尺

執行腳本

修改腳本為 循環編譯 ,編譯所有需要的文件

build-android-all.sh 腳本文件內容如下

執行腳本方法同上,如為第一次執行(即沒有Makefile文件),仍需要執行 ./config 循環編譯無需執行 make clean

參考: https://blog.csdn.net/iamadk

Python 腳本內容

創建編譯執行腳本

執行編譯腳本同r15,第一次需要執行 ./config 生成Makefile,第二次或以上需要清除make記錄即 make clean ,接下來依舊是創建 循環編譯 腳本

④ Android:Ubuntu編譯OpenSSL步驟

NDK版本:android-ndk-r14b

OpenSSL版本:1.1.1k/3.0.0

Ubuntu版本:15.5

1、配置ndk環境變數
OpenSSL版本:1.1.1k:export ANDROID_NDK_HOME=/home/linrendi/Desktop/Compile/android-ndk-r14b/
OpenSSL版本:3.0.0: export ANDROID_NDK=/home/linrendi/Desktop/Compile/android-ndk-r14b/
如果是
編譯32位:
OpenSSL版本:1.1.1k:1、export PATH= PATH
OpenSSL版本:3.0.0:1、export PATH= PATH
2、./Configure android-arm -D__ANDROID_API__=21 --prefix=/home/linrendi/Desktop/openssl-1.1.1k/armv7a
3、make -j7 && make install
編譯64位:
OpenSSL版本:1.1.1k:1、export PATH= PATH
OpenSSL版本:3.0.0:1、export PATH= PATH
2、./Configure android-arm64 -D__ANDROID_API__=21 --prefix=/home/linrendi/Desktop/openssl-1.1.1k/arm64
3、make -j7 && make install

注意:當編譯完32位後,又想編譯64位,必須重新解壓,避免一些配置沒有更新導致編譯失敗

熱點內容
phpip2long 發布:2024-11-20 19:16:47 瀏覽:948
編程貓登錄代 發布:2024-11-20 19:04:29 瀏覽:351
我的世界伺服器刷怪指令 發布:2024-11-20 19:00:22 瀏覽:829
裝修配置專員是什麼的 發布:2024-11-20 18:55:02 瀏覽:620
怎麼破解蘋果手機6密碼怎麼辦 發布:2024-11-20 18:52:25 瀏覽:405
解密數字編程 發布:2024-11-20 18:50:55 瀏覽:714
python字典生成 發布:2024-11-20 18:46:41 瀏覽:22
內網伺服器怎麼免費獲得 發布:2024-11-20 18:25:34 瀏覽:73
php不重復隨機數 發布:2024-11-20 18:25:30 瀏覽:930
職業病上傳 發布:2024-11-20 18:23:27 瀏覽:5