当你在 macOS 上遇到“Library not loaded: @rpath/libcurl.4.dylib”的错误时,这通常意味着你的应用程序在运行时找不到指定的动态链接库(DLL)文件。这种情况通常发生在以下几种情况:

解决方案

  1. 确保库文件存在:确保 libcurl.4.dylib 文件存在于你的应用程序的 @rpath 目录下。你可以使用 install_name_tool 来查看和修改库文件的路径。
  2. 设置正确的运行路径:使用 install_name_tool 来修改库文件的安装名称(install name)。例如,如果你的应用程序位于 /Applications/MyApp.app,而 libcurl.4.dylib 位于该应用的 Contents/Frameworks 目录下,你可以使用以下命令来设置正确的运行路径:install_name_tool -change @rpath/libcurl.4.dylib @executable_path/../Frameworks/libcurl.4.dylib /Applications/MyApp.app/Contents/MacOS/MyApp
  3. 或者,如果你使用的是 Xcode,可以在项目的 Build Phases 中添加一个 Run Script Phase,在其中加入上述命令。
  4. 检查构建配置:确保你的项目配置正确设置了运行时搜索路径(Runpath Search Paths)。在 Xcode 中,你可以在 Target 的 Build Settings 中查找 Runpath Search Paths,并添加包含 libcurl.4.dylib 的目录。例如:
    • 在 Xcode 的 Build Settings 中,找到 Runpath Search Paths 并添加 @executable_path/../Frameworks
  5. 使用 lipo 工具验证架构:确保 libcurl.4.dylib 支持你的应用程序架构(如 arm64, x86_64 等)。你可以使用 lipo 工具来检查和修改库文件的架构:lipo -info /path/to/libcurl.4.dylib如果库文件的架构不正确,你可能需要重新编译或获取正确架构的库文件。
  6. 清理和重建项目:有时候,简单的清理和重建项目可以解决路径或配置问题。在 Xcode 中,你可以选择 Product > Clean Build Folder,然后重新构建项目。

通过上述步骤,你应该能够解决 “Library not loaded: @rpath/libcurl.4.dylib” 的错误。如果问题仍然存在,检查是否有其他依赖问题或配置错误,并确保所有依赖库都已正确安装和配置。