0

通过 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 并在任何计算机上运行它?

4

1 回答 1

0

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

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

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

于 2012-07-27T08:28:47.607 回答