1
我想动态链接一个Rust .so库与Linux中的C程序与gcc。在没有错误只使用dlopen
和dlclose
结果,但我得到了下面的代码段故障:如何在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
指针不为空
'my_function'的Rust签名是什么? – malbarbo
@malbarbo它是'pub extern“C”fn my_function(my_string:* const c_char) - > * const c_char' –