是的,libloading 库在 Rust 中可以用来加载多个库。你可以使用 libloading 的 Library::new() 函数来加载多个库,然后使用 Library::get() 函数来获取库中的符号。以下是一个简单的示例:
extern crate libloading;
use libloading::{Library, Symbol};
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
// 加载第一个库
let lib1 = Library::new("path/to/lib1.so")?;
// 加载第二个库
let lib2 = Library::new("path/to/lib2.so")?;
// 获取库中的符号
let symbol1: Symbol<unsafe extern "C" fn()> = lib1.get(b"symbol1")?;
let symbol2: Symbol<unsafe extern "C" fn()> = lib2.get(b"symbol2")?;
// 调用符号
symbol1();
symbol2();
Ok(())
}
在这个示例中,我们加载了两个库(lib1.so 和 lib2.so),并从每个库中获取了一个符号(symbol1 和 symbol2)。然后我们调用了这些符号。请注意,你需要将 path/to/lib1.so 和 path/to/lib2.so 替换为实际的库文件路径。