• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

【Rust】外部函数接口

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

环境

  • Rust 1.56.1
  • VSCode 1.61.2
  • Windows 7
  • mingw64 7.3.0

概念

参考:https://stackoverflow.com/questions/40833078/how-do-i-specify-the-linker-path-in-rust

示例

Cargo.toml

[package]
name = "rust"
version = "0.1.0"
edition = "2021"
build = "build.rs"

[dependencies]

build.rs

该文件放到项目根目录,src 文件夹的上一层。

fn main() {
    // cargo:rustc-link-search= 后跟上静态库或者动态库的路径,到文件夹
    println!(r"cargo:rustc-link-search=C:\Users\jiangbo\work\rust");
}

main.rs

#[link(name = "add")]
extern "C" {
    fn add(a: i32, b: i32) -> i32;
}

fn add_with_c(a: i32, b: i32) -> i32 {
    unsafe { add(a, b) }
}

fn main() {
    let sum = add_with_c(7, 8);
    println!("{}", sum);
}

add.c

int add(int a, int b)
{
    return a + b;
}

生成库

gcc -c add.c
ar cr libadd.a add.o

总结

了解了 Rust 中外部函数接口的使用。

附录


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
数据可视化——Matlab平台gramm工具箱绘制散点相关图发布时间:2022-07-18
下一篇:
Matlab的元组的索引问题发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap