如何在C中动态加载Rust库?

时间:2016-07-01 19:20:33

标签: c gcc rust dynamic-linking dlsym

我尝试使用gcc动态链接Rust .so库和Linux中的C程序。仅使用dlopendlclose会导致错误,但我会使用以下代码获得分段错误:

char * (*my_function)(char *);
char *my_input_string = "foo";

//...abbreviated code...

my_function = dlsym(handle, "my_function");
char *my_output_string = (*my_function)(my_input_string);

我使用gcc -g foo.c -ldl -o foo编译,如果重要的话。

我知道它找到了符号,因为我在生锈库中使用了#[no_mangle]my_function指针不为空

1 个答案:

答案 0 :(得分:0)

我通过gdb运行它,结果发现图书馆试图在调用程序中调用一个不存在的函数。