rust调用C函数

本文展示了如何在Rust项目中调用C语言编写的函数。通过`build.rs`配置交叉编译,使用`cc` crate编译C源文件为静态库,并在Rust代码中通过`extern "C"`声明并调用这些C函数。示例包括`build.sh`脚本、`build.rs`配置以及`mppintf.c`中的C函数和Rust的`main.rs`调用。
摘要由CSDN通过智能技术生成

tree -a

.

├── build.rs

├── build.sh

├── .cargo

│ └── config.toml

├── Cargo.lock

├── Cargo.toml

├── src

│ ├── main.rs

│ ├── mppintf.c

│ └── sensor.h

└── .vscode

└── settings.json

3 directories, 9 files

.cargo/config.toml :定义交叉编译

[build]

target = "arm-unknown-linux-gnueabi"

[target.arm-unknown-linux-gnueabi]

linker = "arm-linux-gnueabi-gcc"

build.sh :由于使用arm-linux-gnueabi-gcc不在系统环境变量中,同时还需要build.rs等,创建build.sh来完成工作

#!/bin/bash

TOPDIR=`pwd`

TOOLCHAIN=${TOPDIR}/../../toolchain

export PATH=${PATH}:${TOOLCHAIN}/bin

CROSS=arm-linux-gnueabi-

AR=${CROSS}ar

CC=${CROSS}gcc

STRIP=${CROSS}strip

MPP=${TOPDIR}/../mpp

PLATFOR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值