找不到FreeImage库

时间:2012-07-27 08:20:51

标签: objective-c xcode macos dynamic

通过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

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

1 个答案:

答案 0 :(得分:0)

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

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

您可能需要考虑的另一件事是修改DYLD_LIBRARY_PATH变量,该变量指定操作系统在链接时查找库的路径。有关详细信息,请参阅this answer