如何链接不在标准位置的框架?

jon*_*s-k 11 macos rust

我试图在/System/Library/PrivateFrameworks使用中链接私有框架

#[link(name = "MultitouchSupport", kind = "framework")]
Run Code Online (Sandbox Code Playgroud)

但是链接器告诉我没有找到MultitouchSupport框架.我也试过了

#[link(name = "/System/Library/PrivateFrameworks/MultitouchSupport", kind = "framework")]
Run Code Online (Sandbox Code Playgroud)

#[link(name = "/System/Library/PrivateFrameworks/MultitouchSupport.framework", kind = "framework")]
Run Code Online (Sandbox Code Playgroud)

文件扩展名,但都不起作用.

是否有可能链接到不在标准位置的框架/System/Library/Frameworks

jon*_*s-k 3

我发现 WiSaGaN 的建议非常接近解决方案:如果您在 build.rs 中使用 search=framework ,它就会起作用。解决方案是使用以下 build.rs:

fn main()
{
    println!("cargo:rustc-link-search=framework={}", "/System/Library/PrivateFrameworks");
}
Run Code Online (Sandbox Code Playgroud)

谢谢你,WiSaGaN!

使用此 build.rs 您可以像往常一样链接:

#[link(name = "MultitouchSupport", kind = "framework")]
Run Code Online (Sandbox Code Playgroud)