当前位置: 首页 > wzjs >正文

赣州网站建设开发微信小程序短链接生成

赣州网站建设开发,微信小程序短链接生成,wordpress音乐播放显示歌词,官网建站系统目标 在x86_64架构的Ubuntu系统上,纯静态编译aarch64平台的rust-opencv,以方便在嵌入式设备上移植。 基础环境 系统:Ubuntu 24.04,架构:x86_64,可使用WSL,或者Docker,本次使用Doc…

目标

在x86_64架构的Ubuntu系统上,纯静态编译aarch64平台的rust-opencv,以方便在嵌入式设备上移植。

基础环境

系统:Ubuntu 24.04,架构:x86_64,可使用WSL,或者Docker,本次使用Docker。

#拉取基础镜像
docker pull ubuntu:24.04#启动Docker容器
docker run -it --name rust-aarch64 -v .:/build ubuntu:24.04

安装git

apt update
apt install git

安装基础工具

apt install build-essential wget curl llvm libclang-dev

安装并编译交叉编译工具

# 新建个目录存放编交叉编译相关工具
mkdir -p /tools
cd /tools# 下载交叉编译工具
git clone https://github.com/richfelker/musl-cross-make.git
cd musl-cross-make# 写入编译配置
cat > config.mak <<EOF
TARGET = aarch64-linux-musl
OUTPUT = /opt/musl-cross
GCC_VER = 11.5.0
#COMMON_CONFIG += CC="aarch64-linux-musl-gcc -static --static" CXX="aarch64-linux-musl-g++ -static --static"
GCC_CONFIG += --enable-languages=c,c++
BINUTILS_VER = 2.33.1
MUSL_VER = 1.2.5
GCC_CONFIG += --enable-static --enable-libstdcxx-static --enable-threads=posix
EOF# 编译
make -j$(nproc)
# 安装,将会被安装在/opt/musl-cross目录下
make install# 配置环境变量
export PATH=/opt/musl-cross/bin:$PATH

编译OpenCV

# 拉取OpenCV源码
cd /tools
git clone https://github.com/opencv/opencv.git#拉取opencv_contrib源码
git clone https://github.com/opencv/opencv_contrib.gitcd /tools/opencv && mkdir build && cd build# 编译
cmake  .. \
-D CMAKE_SYSTEM_NAME=Linux \
-D CMAKE_SYSTEM_PROCESSOR=aarch64 \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_C_COMPILER=aarch64-linux-musl-gcc \
-D CMAKE_CXX_COMPILER=aarch64-linux-musl-g++ \
-D BUILD_SHARED_LIBS=OFF \
-D CMAKE_CXX_FLAGS=-fPIC \
-D CMAKE_C_FLAGS=-fPIC  \
-D CMAKE_EXE_LINKER_FLAGS="-lpthread -ldl"  \
-D ENABLE_PIC=OFF  \
-D WITH_1394=OFF \
-D WITH_ARAVIS=OFF \
-D WITH_ARITH_DEC=ON  \
-D WITH_ARITH_ENC=ON  \
-D WITH_CLP=OFF  \
-D WITH_CUBLAS=OFF \
-D WITH_CUDA=OFF  \
-D WITH_CUFFT=OFF \
-D WITH_FFMPEG=OFF  \
-D WITH_GSTREAMER=ON \
-D WITH_GSTREAMER_0_10=OFF  \
-D WITH_HALIDE=OFF  \
-D WITH_HPX=OFF \
-D WITH_IMGCODEC_HDR=ON \
-D WITH_IMGCODEC_PXM=ON \
-D WITH_IMGCODEC_SUNRASTER=ON \
-D WITH_INF_ENGINE=OFF \
-D WITH_IPP=OFF  \
-D WITH_ITT=OFF \
-D WITH_JASPER=ON \
-D WITH_JPEG=ON  \
-D WITH_LAPACK=ON  \
-D WITH_LIBREALSENSE=OFF  \
-D WITH_NVCUVID=OFF  \
-D WITH_OPENCL=OFF  \
-D WITH_OPENCLAMDBLAS=OFF \
-D WITH_OPENCLAMDFFT=OFF  \
-D WITH_OPENCL_SVM=OFF  \
-D WITH_OPENEXR=OFF  \
-D WITH_OPENGL=OFF \
-D WITH_OPENMP=OFF \
-D WITH_OPENNNI=OFF  \
-D WITH_OPENNNI2=OFF \
-D WITH_OPENVX=OFF  \
-D WITH_PNG=ON \
-D WITH_PROTOBUF=ON \
-D WITH_PTHREADS_PF=ON \
-D WITH_PVAPI=OFF  \
-D WITH_QT=OFF -D WITH_QUIRC=OFF \
-D WITH_TBB=OFF \
-D WITH_TIFF=ON \
-D WITH_VULKAN=OFF  \
-D WITH_WEBP=ON \
-D WITH_XIMEA=OFF  \
-D BUILD_JAVA=OFF \
-D BUILD_opencv_python3=OFF \
-D CMAKE_INSTALL_PREFIX=/opt/opencv \
-D WITH_GTK=OFF  \
-D WITH_EIGEN=OFF \
-D OPENCV_EXTRA_MODULES_PATH="/tools/opencv_contrib/modules" \
-D BUILD_ZLIB=ON  \
-D ZLIB_INCLUDE_DIR="../3rdparty/zlib" \
-D OPENCV_GENERATE_PKGCONFIG=ON \make -j$(nproc)#安装,将会被安装到/opt/opencv
make install

安装Rust

# 安装
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
. "$HOME/.cargo/env"#添加aarch64-unknown-linux-musl工具链
rustup target add aarch64-unknown-linux-musl

创建一个简单的Rust项目

# Cargo.toml
[package]
name = "opencv-cross-demo"
version = "0.1.0"
edition = "2024"[dependencies]
opencv = "0.94.2"
// main.rs
use opencv::imgcodecs::{IMREAD_COLOR, imread};
use opencv::prelude::MatTraitConst;fn main() -> Result<(), Box<dyn std::error::Error>> {// 在项目根目录下添加一张图片let image = imread("image.jpg", IMREAD_COLOR)?;println!("image size: {} x {}", image.cols(), image.rows());Ok(())
}
# config.toml
[target.aarch64-unknown-linux-musl]
linker = "aarch64-linux-musl-ld"
rustflags = ["-L", "/opt/opencv/install/lib","-L", "/opt/opencv/install/lib/opencv4/3rdparty","-L", "/opt/musl-cross/lib/gcc/aarch64-linux-musl/11.5.0","-L", "/opt/musl-cross/aarch64-linux-musl/lib","-C", "link-arg=-static","-C", "link-arg=-llibtiff","-C", "link-arg=-llibwebp","-C", "link-arg=-llibpng","-C", "link-arg=-lzlib","-C", "link-arg=-llibopenjp2","-C", "link-arg=-llibjpeg-turbo","-C", "link-arg=-llibprotobuf","-C", "link-arg=-lstdc++","-C", "link-arg=-lgcc","-C", "link-arg=-lc",
]

Rust编译

cd /build
cargo run--target aarch64-unknown-linux-musl
# 输出:image size: 1280 x 853# 查看文件格式,无动态链接
file target/aarch64-unknown-linux-musl/debug/opencv-cross-demo
# 输出:target/aarch64-unknown-linux-musl/debug/opencv-cross-demo: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, with debug_info, not stripped
http://www.dtcms.com/wzjs/583689.html

相关文章:

  • 电子商务网站建设与维护实验报告wordpress上传html
  • 网站上线前的准备工作深圳画册设计印刷公司
  • 东莞微客巴巴做网站网页游戏网页打不开
  • 网站的最近浏览 怎么做网站建设改版升级
  • 网站页面统计代码是什么淘宝u站怎么做网站的
  • 广州铁路投资建设集团网站360建筑网质量怎么样
  • 赣州网站优化推广怎样优化推广
  • 网站开发及app开发报价做电商运营有前途吗
  • 网站开发企业需要什么资质关于建设网站与营销的好处
  • 收费网站方案建设银行信用卡网站下载
  • 湖南平台网站建设制作山西省建设注册中心网站
  • 福州云建站做好网站建设静态化
  • 做个外贸网站多少费用优品ppt官网
  • 网站建设原创空间建设网站
  • 百度添加网站网站呼叫中心 建设工期
  • 织梦程序来搭建网站想开一家网店
  • 临沂网站建设平台扬州百度推广公司
  • 江西港航建设投资有限公司网站seo诊断书
  • app开发和网站开发哪个简单移动互联网推广
  • 有关网站建设的参考文献电子商务公司简介
  • 微擎 网站开发工具钓鱼网站怎么做防护教程
  • 免费申请论坛网站基础建设文本网站
  • 东莞横沥网站设计海口建站
  • 网站开发公司会在最后面加上公司济南智能网站建设报价
  • 网站的关键词库怎么做的那么多wordpress 互动模块
  • 深圳网站建设哪家公司便宜自适应型网站建设哪家好
  • 做网站小程序在哪点拉客户中国定制家具网
  • 网站推广名词解释公司网站费用计入什么科目
  • 网站更新维护怎么做九江市住房和城乡建设厅网站
  • 网站开发公司经营范围怎么写湖南人文科技学院官网教务系统