转:Rust 调用C/C++
https://www.jianshu.com/p/95884d1d04aa
需要引入cc依赖
Cargo.toml
[package]
name = "rust-call-c"
version = "0.1.0"
authors = ["ice <bsqql123@163.com>"]build = "build.rs"[dependencies]
libc = "0.2"[build-dependencies]
cc = "1.0"
build.rs
extern crate cc;fn main() {cc::Build::new().file("src/double.c").compile("libdouble.a");
}
main.rs
extern crate libc;extern {fn double_input(input: libc::c_int) -> libc::c_int;
}//TODO
fn main() {let input = 4;let output = unsafe { double_input(input) };println!("{} * 2 = {}", input, output);
}
double.c
int double_input(int input) {return input * 2;
}
具体例子在
https://github.com/iceqing/rust-call-c
这里是一个比较完整的例子,有各种语言的示例代码
https://github.com/iceqing/rust-ffi-examples
作者:iceqing
链接:https://www.jianshu.com/p/95884d1d04aa
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
转:Rust 调用C/C++相关推荐
- rust 调用 java_自从尝了 Rust,Java 突然不香了
Rust 是软件行业中相对而言比较新的一门编程语言,如果从语法上来比较,该语言与 C++ 其实非常类似,但从另一方面而言,Rust 能更高效地提供许多功能来保证性能和安全.而且,Rust 还能在无需使 ...
- Rust FFI 与C语言互相调用
Rust FFI 与C语言互相调用 参考 cbindgen 简介 二进制方式构建 脚本构建 Demo程序说明 示例工程: makefile test脚本 基本数据类型 Rust侧 C侧 对象 Rust ...
- Rust应用调用C语言动态库
外部功能接口FFI 虽然高级(脚本)编程语言的功能丰富,表达能力强,但对底层的一些特殊操作的支持并不完善,就需要以其他编程语言来实现.调用其他编程语言的接口,被称为Foreign Function I ...
- 使用PyO3从Python调用 Rust:加速Python
使用 Rust 加速你的 Python: PyO3使从 Python 调用 Rust 代码变得容易.您可以编写 Rust 库,并依靠 PyO3 和生态系统中maturin的支持工具的组合PyO3来编译 ...
- gRPC-rs:从 C 到 Rust
介绍 在上篇文章中,我们讲到 TiKV 为了支持 gRPC,我们造了个轮子 gRPC-rs,这篇文章简要地介绍一下这个库.首先我们来聊聊什么是 gRPC.gRPC 是 Google 推出的基于 HTT ...
- gRPC-rs:从 C 到 Rust 1
介绍 在上篇文章中,我们讲到 TiKV 为了支持 [gRPC],我们造了个轮子 [gRPC-rs],这篇文章简要地介绍一下这个库.首先我们来聊聊什么是 gRPC.gRPC 是 Google 推出的基于 ...
- Rust跨界前端全攻略
作者 | Diomidis Spinellis 译者 | 马超 责编 | 张红月 出品 | CSDN(ID:CSDNnews) 众所周知Rust的学习曲线极为陡峭,学习过程中挫败感极强,像笔者 ...
- rust嵌入式key/value数据库
文章目录 项目介绍 sled 已知问题 如何使用 leveldb-rs 如何使用 rust-rocksdb 如何使用 lmdb-rs 如何使用 功能对比 性能测试对比 插入不同的长度的key/valu ...
- Rust 1.0发布一周年,发展回顾与总结
本文为InfoQ中文站特供稿件,首发地址为: http://www.infoq.com/cn/articles/anniversary-of-the-release-of-rust-1 .如需转载,请 ...
- 【Rust日报】2021-08-30 如何来看待 unwrap
如何来看待 unwrap unwrap 方法可能会让新手感到困惑.一些建议: 可以使用 Expect (&str) 而不是 unwrap() 为 panic 提供上下文. 使用 unwrap ...
最新文章
- C语言考研复试知识点整理
- 算法周记(一)直接插入排序
- java数组扩容arraylist,ArrayList--扩容机制
- [Python图像处理] 三十一.图像点运算处理两万字详细总结(灰度化处理、阈值化处理)
- 浅谈C#中Control的Invoke与BeginInvoke在主副线程中的执行顺序和区别
- 万方数据知识平台 TFHpple +Xpath解析
- OpenYurt开箱测评|一键让原生K8s集群具备边缘计算能力
- (转载)(收藏)OceanBase深度解析
- 普通公司员工的编程水平与阿里巴巴有多大差距?
- 数易云备开启虚拟机备份新时代
- HTML div元素
- mysql重置所有表_Mysql脚本之清空当前数据库下的所有表中数据,并重置自增id
- java关键词 英文原文解释,javadoc注释规范(国外英文资料).doc
- android之sqlite操作
- 与程序员相关的CPU缓存知识
- 想从事区块链开发? 你应该这么做
- Error: While importing ‘run_app_dev‘, an ImportError was raised.
- 文件管理学习:从百度网盘搬家onedrive测评
- [ 深度学习 ] —— 优化策略:(1) Label Smoothing Regularization(LSR)
- 中台渐入佳境,云徙科技的有所为与有所不为
热门文章
- 源码安装Apache http server
- getent passwd 不能访问到 ldap 的用户
- 数据挖掘标准流程规范
- C#_串口通信_SerialPort_一个最基础的串口程序
- 关于CAPWAP的一些概念
- 在ASP.NET 2.0中直接得到本页面生成的HTML代码(转自孟宪会之精彩世界)
- Alpha,Beta,RC,RTM,EVAL,CTP,OEM,RTL,VOL
- Codeforces Round #436 (Div. 2) B. Polycarp and Letters
- 天瑞地安科技集团:APP软件如何优化
- js中不能做变量名的字符