c动态库代码cone.c:
#include<stdio.h>
int c_sum(int a)
{
int i = 0;
int sum = 0;
for(i=1;i<=a;i++)
{
sum += i;
}
return sum;
}
生成动态库:
gcc cone.c -fPIC -shared -o libone.so
two.rs代码:
#[link(name="one")]
extern "C"{
fn c_sum(a:i32)->i32;
}
fn main() {
unsafe{
println!("{}",c_sum(10));
}
}
rustc two.rs 生成执行文件two(需要将so放到rust识别的库路径下)
./two执行