2012-07-27 179 views
0

通过MacPorts安装FreeImage。一切看起来是好的,但是当我建造我的应用程序,并试图启动其他计算机上的其中没有MacPorts的,没有安装的FreeImage它说FreeImage library not found

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

+0

操作系统正在'/ opt/local/lib'中寻找动态库,但是你的包中有它们,因此找不到它们。 – 2012-07-27 08:28:51

回答

0

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

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

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