我尝试创建一个可由 ac 程序调用的 Rust 库,到目前为止,我设法创建一个动态库并调用它(使用 创建的库rustc --crate-type=cdylib src/lib.rs -o libCustomlib.so,使用 链接gcc main.o -lCustomlib)。
当我现在采用相同的代码但将其编译为静态库(rustc --crate-type=staticlib src/lib.rs -o libCustomlib.a)时,gcc 在链接(使用gcc main.o -L. -l:libCustomlib.a)时抛出错误
错误都是对各种函数的未定义引用
前几行:
/usr/bin/ld: ./libCustomlib.a(std-b1b61f01951b016b.std.5rqysbiy-cgu.2.rcgu.o): in function `std::sys::unix::mutex::Mutex::init':
/usr/src/rustc-1.43.0//src/libstd/sys/unix/mutex.rs:46: undefined reference to `pthread_mutexattr_init'
/usr/bin/ld: /usr/src/rustc-1.43.0//src/libstd/sys/unix/mutex.rs:48: undefined reference to `pthread_mutexattr_settype'
/usr/bin/ld: /usr/src/rustc-1.43.0//src/libstd/sys/unix/mutex.rs:52: undefined reference to `pthread_mutexattr_destroy'
Run Code Online (Sandbox Code Playgroud)
完整错误超过 100 行长,但这些行都是这种形式
lib.rs 目前只有一个测试 helloWorld 函数:
/usr/bin/ld: ./libCustomlib.a(std-b1b61f01951b016b.std.5rqysbiy-cgu.2.rcgu.o): in function `std::sys::unix::mutex::Mutex::init':
/usr/src/rustc-1.43.0//src/libstd/sys/unix/mutex.rs:46: undefined reference to `pthread_mutexattr_init'
/usr/bin/ld: /usr/src/rustc-1.43.0//src/libstd/sys/unix/mutex.rs:48: undefined reference to `pthread_mutexattr_settype'
/usr/bin/ld: /usr/src/rustc-1.43.0//src/libstd/sys/unix/mutex.rs:52: undefined …Run Code Online (Sandbox Code Playgroud)