【问题标题】:FreeImage library not found未找到免费图片库
【发布时间】:2012-07-27 08:20:50
【问题描述】:

通过 MacPorts 安装 FreeImage。一切看起来都很好,但是当我构建我的应用程序并尝试在其他没有安装 MacPorts 和 FreeImage 的计算机上启动时,它说

dyld: Library not loaded: /opt/local/lib/libfreeimage.3.dylib
  Referenced from: /Users/development/Library/Developer/Xcode/DerivedData/freeimage-dxsornyaxqlkyubqwsrlkgszvxhy/Build/Products/Debug/freeimage.app/Contents/MacOS/freeimage
  Reason: image not found

它不应该将库文件与我的项目一起复制吗?我将它们添加到我的项目的构建阶段“复制文件”列表中。它们被复制到我的应用程序包中。但是当我尝试链接它们时,我得到了同样的错误。我不知道为什么,但应用程序仍在 /opt/local/lib 中寻找库。如何修复它以便我可以在我的项目中使用 FreeImage 并在任何计算机上运行它?

【问题讨论】:

  • 操作系统正在寻找 /opt/local/lib 中的动态库,但您的包中包含它们,因此找不到它们。

标签: objective-c xcode macos dynamic


【解决方案1】:

当您通过 MacPorts 安装时,该库安装在 /opt/local/lib 中,而不是您的项目路径中。即使复制整个项目,*dylib 库也不会被复制,因为它们通常位于 /opt/local/lib 中。

我相信您在这里有两个选择:在您要运行应用程序的每台计算机上安装 FreeImage,或将 libfreeimage.3.dylib 复制到您的二进制文件所在的同一文件夹中,如果两个系统相似,那应该工作。如果两台计算机在操作系统版本、硬件架构等方面不同……那么您拥有的 .dylib 可能与另一台计算机不兼容。

您可能要考虑的另一件事是修改您的DYLD_LIBRARY_PATH 变量,该变量指定操作系统在链接时将在其中查找库的路径。请参阅this answer 了解更多信息。

【讨论】:

    猜你喜欢
    • 2017-06-14
    • 1970-01-01
    • 2014-01-21
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 2015-09-26
    相关资源
    最近更新 更多