2016-07-01 43 views
1

我想动态链接一个Rust .so库与Linux中的C程序与gcc。在没有错误只使用dlopendlclose结果,但我得到了下面的代码段故障:如何在C中动态加载Rust库?

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指针不为空

+0

'my_function'的Rust签名是什么? – malbarbo

+0

@malbarbo它是'pub extern“C”fn my_function(my_string:* const c_char) - > * const c_char' –

回答

0

我跑它通过gdb和原来的库试图调用一个函数中调用该计划不存在。