CentOS系统中Rust与C语言如何互操作
在CentOS系统里,让Rust和C语言通过FFI(即外部函数接口)愉快地协作,其实并没有想象中那么神秘。下面一步步拆解这个过程,照着走一遍就能跑通。 1. 安装Rust 第一步自然是确保Rust已经安装妥当。如果还没装,运行下面这条命令即可: curl --proto '=https' --tls
在CentOS系统里,让Rust和C语言通过FFI(即外部函数接口)愉快地协作,其实并没有想象中那么神秘。下面一步步拆解这个过程,照着走一遍就能跑通。

1. 安装Rust
第一步自然是确保Rust已经安装妥当。如果还没装,运行下面这条命令即可:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装完成后,记得重新加载一下shell配置文件,让环境变量生效:
source $HOME/.cargo/env
2. 创建Rust项目
新建一个Rust库项目,名字可以随意取,这里用my_rust_lib:
cargo new --lib my_rust_lib
cd my_rust_lib
3. 配置Cargo.toml
为了让Rust代码能被C语言调用,需要在Cargo.toml里指定库类型为动态链接库,并引入libc依赖:
[lib]
name = "my_rust_lib"
crate-type = ["cdylib"]
[dependencies]
libc = "0.2"
4. 编写Rust代码
在src/lib.rs中,用extern "C"块声明外部可调用的函数,并加上#[no_mangle]防止名称被编译器改写:
#[no_mangle]
pub extern "C" fn rust_function() {
println!("Hello from Rust!");
}
5. 编译Rust代码为动态链接库
执行编译命令,生成.so文件:
cargo build --release
编译完成后,在target/release目录下就能找到那个.so文件了。
6. 编写C代码
创建一个C文件(比如main.c),先声明Rust函数的原型,然后在main里调用它:
#include
// 声明Rust函数
void rust_function();
int main() {
printf("Calling Rust function...\n");
rust_function();
return 0;
}
7. 编译C代码并链接Rust库
用gcc编译C代码,并链接上刚才生成的动态库:
gcc -o main main.c -Ltarget/release -lmy_rust_lib -lpthread -ldl
这里-L指定了库的搜索路径,-l指定库名(去掉前缀lib和后缀.so)。
8. 运行程序
跑一下生成的可执行文件:
./main
正常的话,你会看到:
Calling Rust function...
Hello from Rust!
注意事项
- ABI兼容性:Rust和C的调用约定必须一致,使用
extern "C"就是指定C的ABI。 - 名称修饰:
#[no_mangle]是必选项,否则Rust编译器会搞出一些奇奇怪怪的名称,C端就找不到函数了。 - 链接路径:指定库路径时,
-L后面跟着的路径要确保正确,库名称也要对应上。
按照这个流程操作,CentOS上的Rust与C互操作就能顺利跑通。实际项目中,你还可以在Rust端调用C库的函数,原理类似,把extern "C"块里的声明换成C函数的声明就行了。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















