Sqlite,libevent,openssl,mosquito交叉編譯
阿新 • • 發佈:2019-03-02
nss toc arm-linux uil exp tls efi out crypt
一、設置交叉編譯環境
- 在makefile所在目錄(或源代碼根目錄)打開終端。
- 在終端中設置交叉編譯所需的臨時環境變量(也可寫到配置文件中設置為全局環境變量),其中交叉編譯工具鏈的名稱和目錄需要根據實際目錄設置,每次編譯前執行以下命令:
export CC=/home/hk/Desktop/sixin/gcc-4.9/bin/mips-linux-gcc export CXX=/home/hk/Desktop/sixin/gcc-4.9/bin/mips-linux-g++ export AR=/home/hk/Desktop/sixin/gcc-4.9/bin/mips-linux-ar export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/hk/Desktop/sixin/gcc-4.9/lib
二、交叉編譯sqlite3
1.設置交叉編譯環境。
2.執行以下命令配置編譯選項。 --prefix=
後面跟的是編譯出來的庫的安裝目錄,需要根據實際情況設置,--host=
後面的內容根據交叉編譯工具設置。
./configure --host=arm-linux-gnueabihf --prefix=/home/hk/Desktop/moxa/sqlite-autoconf-3071600/out
make #編譯
make install #安裝
三、交叉編譯openssl
1.設置交叉編譯環境。
2.執行以下命令配置編譯選項。 --prefix=
後面跟的是編譯出來的庫的安裝目錄,需要根據實際情況設置。
編譯靜態庫,
linux:‘arm-linux-gnueabihf-gcc‘
中arm-linux-gnueabihf-gcc
根據交叉編譯工具設置。./Configure linux-elf-arm -DB_ENDIAN linux:'arm-linux-gnueabihf-gcc' --prefix=[輸出路徑] make make install
編譯動態庫
./config -fPIC no-asm -shared --prefix=/home/hk/Desktop/openssl-1.0.0/out # 配置完成之後需要修改makefile,將makefile中的 -m64 刪除。 make make install
註意:盡量使用靜態庫,動態庫有時會出錯。
四、交叉編譯libevent
1.設置交叉編譯環境。
2.執行以下命令配置編譯選項。 --prefix=
後面跟的是編譯出來的庫的安裝目錄,需要根據實際情況設置。
3.CPPFLAGS="-I/usr/local/Cellar/openssl/1.0.2h_1/include"
為openssl頭文件目錄,LDFLAGS=LDFLAGS="-L/usr/local/Cellar/openssl/1.0.2h_1/lib -lssl -lcrypto"
是編譯出來的openssl庫目錄,需要根據實際情況設置。
./configure --host=arm-linux CPPFLAGS="-I/usr/local/Cellar/openssl/1.0.2h_1/include" LDFLAGS="-L/usr/local/Cellar/openssl/1.0.2h_1/lib -lssl -lcrypto" --prefix=/usr/local
make
make install
五、交叉編譯 paho.mqtt.c ,需要先交叉編譯 openssl
1.設置交叉編譯環境。
2.修改makefile ,在129行添加如下,CFLAGS += -I
後面的內容為openssl頭文件目錄,LDFLAGS += -L
是編譯出來的openssl庫目錄,需要根據實際情況設置。
# 修改makefile ,在129行添加如下, -I參數後面的內容為 交叉編譯openssl庫安裝目錄
CFLAGS += -I./../openssl-1.1.0g/install/include
LDFLAGS += -L./../openssl-1.1.0g/install/lib
#修改後執行make命令編譯
make
3.編譯完成後,會在當前目錄創建build目錄,進入build目錄,裏面有一個output目錄和一個版本頭文件,output目錄中存放著編譯出來的庫文件,examples和測試程序。
六、交叉編譯 mosquitto
- 設置交叉編譯環境。
- 修改源文件目錄下的
config.mk
文件。- 將
WITH_TLS、WITH_TLS_PSK、WITH_SRV、WITH_UUID 、WITH_DOCS
設置為 no - 在文件頭部設置依賴的
paho.mqtt.c
,openssl
頭文件和庫目錄,如下所示:
- 將
# -I參數後面的內容為paho.mqtt.c庫和openssl頭文件目錄,-L參數後面的內容為編譯好的paho.mqtt.c庫和openssl庫目錄 ,註意: 實際修改時需要不使用[]。
CFLAGS += -I[paho.mqtt.c源代碼目錄下的src目錄] -I[openssl頭文件目錄]
LDFLAGS += -L[編譯處的paho.mqtt.c庫目錄] -L[編譯出來的openssl庫目錄] -lssl -lcrypto
Sqlite,libevent,openssl,mosquito交叉編譯