【问题标题】:Cargo builds fails: ld framework not found Security货物构建失败:未找到 ld 框架安全性
【发布时间】:2021-11-16 03:02:39
【问题描述】:

尝试运行一个简单的程序,但由于问题而失败

note: ld: framework not found Security

clang: error: linker command failed with exit code 1 (use -v to see invocation)

我尝试进行一些调查,发现 cargo.toml 中的 chrono 0.4.19 指向了这一点。一旦我删除了该依赖项,它就会继续构建。我是 mac 世界的新手,看到过各种建议,但我对这个问题一无所知。

我尝试对它进行 dockerise,然后它在容器上运行良好,但在我的 mac 上却不行。谁能指点我正确的方向?

【问题讨论】:

  • 我也在经历这个。你有没有想过为什么?
  • 不幸的是没有找到任何解决方案,我启动了一个 ubuntu 虚拟机并在那里做我的项目。
  • 你碰巧在用nix吗?因为我是,我的解决方法是将pkgs.darwin.apple_sdk.frameworks.Security 添加到我的 shell.nix。
  • 不幸的是我不使用nix :(,感谢您的建议:)
  • 很难回答您的问题,因为它不包含minimal reproducible example。我们无法分辨代码中存在哪些 crate(及其版本)、类型、特征、字段等。如果您尝试在一个全新的 Cargo 项目中重现您的错误,我们会更轻松地为您提供帮助,然后 edit 您的问题将包含附加信息。您可以使用Rust-specific MRE tips 来减少您在此处发布的原始代码。谢谢!

标签: macos rust rust-cargo chrono


【解决方案1】:

您是否尝试在构建时将“-framework Security”添加到命令行参数? “-framework”是一个参数,它导致链接器(ld)查看 /System/Library/Frameworks 中定义为“frameworks”的 Dylib。从技术上讲,它们只是动态库,但需要此开关,因为它们被放入版本控制包 (framework_name.framework/framework_name)。

【讨论】:

    猜你喜欢
    • 2016-04-20
    • 1970-01-01
    • 2018-04-11
    • 2020-04-03
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-21
    相关资源
    最近更新 更多