目前共有5篇帖子。 字體大小:較小 - 100% (默認)▼  內容轉換:台灣正體▼
 
點擊 回復
142 4
編譯onmini-cyl_-gatt_-service程序的方法
一派掌門 二十級
1樓 發表于:2026-1-21 19:40
【arm64-toolchain.cmake】
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm64)

set(CMAKE_C_COMPILER ${CMAKE_CURRENT_SOURCE_DIR}/../../Luckfox_Nova_SDK_250430/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER ${CMAKE_CURRENT_SOURCE_DIR}/../../Luckfox_Nova_SDK_250430/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

一派掌門 二十級
2樓 發表于:2026-1-21 19:40

編譯依賴庫的方法:

mkdir ../../../packages
cp arm64-toolchain.cmake ../../../packages
cd ../../../packages

【交叉編譯spdlog-1.17.0】
wget https://github.com/gabime/spdlog/archive/refs/tags/v1.17.0.tar.gz -O spdlog-1.17.0.tar.gz
tar xf spdlog-1.17.0.tar.gz
cd spdlog-1.17.0
cmake . -DCMAKE_TOOLCHAIN_FILE=../arm64-toolchain.cmake -DSPDLOG_BUILD_SHARED=ON
make
make install DESTDIR=$(pwd)/_install
cd _install
sudo chown -R root:root usr
tar cf spdlog-1.17.0-binary.tar usr
cd ../..

【交叉編譯openssl-1.1.1w】
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
tar xf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./Configure linux-armv4 no-asm \
  --cross-compile-prefix=$(realpath ../../Luckfox_Nova_SDK_250430/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin)/aarch64-none-linux-gnu- \
  enable-ssl3 enable-ssl3-method enable-weak-ssl-ciphers \
  shared
(配置的時候開啟了ssl3.0協議和3des算法)
make
make install DESTDIR=$(pwd)/_install
cd _install
sudo chown -R root:root usr
tar cf openssl-1.1.1w-binary.tar usr
cd ../..

【交叉編譯zlib-1.3.1】
wget https://www.zlib.net/zlib-1.3.1.tar.gz
tar xf zlib-1.3.1.tar.gz
cd zlib-1.3.1
cmake . -DCMAKE_TOOLCHAIN_FILE=../arm64-toolchain.cmake
make
make install DESTDIR=$(pwd)/_install
cd _install
sudo chown -R root:root usr
tar cf zlib-1.3.1-binary.tar usr
cd ../..

 
巨大八爪鱼:【交叉編譯json-3.12.0】
wget https://github.com/nlohmann/json/archive/refs/tags/v3.12.0.tar.gz -O json-3.12.0.tar.gz
tar xf json-3.12.0.tar.gz
cd json-3.12.0
cmake . -DCMAKE_TOOLCHAIN_FILE=../arm64-toolchain.cmake
make
make install DESTDIR=$(pwd)/_install
cd _install
sudo chown -R root:root usr
tar cf json-3.12.0-binary.tar usr
cd ../..

【交叉編譯curl-8.9.1】
wget https://curl.se/download/curl-8.9.1.tar.gz
tar xf curl-8.9.1.tar.gz
cd curl-8.9.1
cmake . -DCMAKE_TOOLCHAIN_FILE=../arm64-toolchain.cmake -DOPENSSL_ROOT_DIR=$(pwd)/../openssl-1.1.1w/_install/usr/local
make
make install DESTDIR=$(pwd)/_install
cd _install
sudo chown -R root:root usr
tar cf curl-8.9.1-binary.tar usr
cd ../..

  2026-2-3 09:08 回復
一派掌門 二十級
3樓 發表于:2026-1-21 19:40

編譯主程序的方法:

rm -rf CMakeFiles Makefile RSA_public_key.pem RSA_private_key.pem CMakeCache.txt cmake_install.cmake spi_handler_app

cmake .. -DCMAKE_TOOLCHAIN_FILE=arm64-toolchain.cmake \
  -DCMAKE_CXX_FLAGS=-Wl,-rpath,/root \
  -DCMAKE_PREFIX_PATH=$(pwd)/../../../packages/spdlog-1.17.0/_install/usr/local \
  -DOPENSSL_ROOT_DIR=$(pwd)/../../../packages/openssl-1.1.1w/_install/usr/local \
  -DZLIB_LIBRARY=$(pwd)/../../../packages/zlib-1.3.1/_install/usr/local
make

編譯完成後,把下列文件上傳到板子上的/root目錄下。
../../../packages/spdlog-1.17.0/_install/usr/local/lib/libspdlog.so.1.17.0
../../../packages/openssl-1.1.1w/_install/usr/local/lib/libcrypto.so.1.1
../../../packages/openssl-1.1.1w/_install/usr/local/lib/libssl.so.1.1
../../../packages/zlib-1.3.1/_install/usr/local/lib/libz.so.1.3.1
spi_handler_app
RSA_public_key.pem
RSA_private_key.pem
用到的adb命令:
adb push "\\oct1158-ubuntu\oct1158\Documents\Code\C\packages\spdlog-1.17.0\_install\usr\local\lib\libspdlog.so.1.17.0" /root/libspdlog.so.1.17
adb push "\\oct1158-ubuntu\oct1158\Documents\Code\C\packages\openssl-1.1.1w\_install\usr\local\lib\libcrypto.so.1.1" /root
adb push "\\oct1158-ubuntu\oct1158\Documents\Code\C\packages\openssl-1.1.1w\_install\usr\local\lib\libssl.so.1.1" /root
adb push "\\oct1158-ubuntu\oct1158\Documents\Code\C\packages\zlib-1.3.1\_install\usr\local\lib\libz.so.1.3.1" /root
adb push "\\oct1158-ubuntu\oct1158\Documents\Code\C\onmini-cyl_-gatt_-service\example\build\spi_handler_app" /root
adb shell chmod +x /root/spi_handler_app
adb push "\\oct1158-ubuntu\oct1158\Documents\Code\C\onmini-cyl_-gatt_-service\example\build\RSA_public_key.pem" /root
adb push "\\oct1158-ubuntu\oct1158\Documents\Code\C\onmini-cyl_-gatt_-service\example\build\RSA_private_key.pem" /root

 
巨大八爪鱼:cmake .. -DCMAKE_TOOLCHAIN_FILE=arm64-toolchain.cmake \
  -DCMAKE_CXX_FLAGS=-Wl,-rpath,/root \
  -DCMAKE_PREFIX_PATH="$(pwd)/../../../packages/spdlog-1.17.0/_install/usr/local;$(pwd)/../../../packages/json-3.12.0/_install/usr/local;$(pwd)/../../../packages/curl-8.9.1/_install/usr/local" \
  -DOPENSSL_ROOT_DIR=$(pwd)/../../../packages/openssl-1.1.1w/_install/usr/local \
  -DZLIB_LIBRARY=$(pwd)/../../../packages/zlib-1.3.1/_install/usr/local

make


../../../packages/curl-8.9.1/_install/usr/local/lib/libcurl.so.4.8.0


adb push "\\oct1158-ubuntu\oct1158\Documents\Code\C\packages\curl-8.9.1\_install\usr\local\lib\libcurl.so.4.8.0" /root/libcurl.so.4

  2026-2-3 09:09 回復

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:142 回複數:4
評論數: ?
作者:巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2026-2-3 09:09
 
©2010-2026 Purasbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。