我在XCode上开发了一个项目,我在其中添加了somme dylib。该项目编译,并在使用XCode启动时执行得很好。
但是当我尝试在我的shell中启动它时,我遇到了lib错误:
iMac-de-Remi-Doolaeghe:MacOS remidoolaeghe$ ./Adobe\ InDesign\ CS5
2011-12-16 10:08:55.160 Adobe InDesign CS5[8071:903] Error loading /Applications/Adobe InDesign CS5/Plug-Ins/Autocat/Autocat.InDesignPlugin/Autocat: dlopen(/Applications/Adobe InDesign CS5/Plug-Ins/Autocat/Autocat.InDesignPlugin/Autocat, 265): Library not loaded: libboost_filesystem-xgcc42-mt-1_37.dylib
Referenced from: /Applications/Adobe InDesign CS5/Plug-Ins/Autocat/Autocat.InDesignPlugin/Autocat
Reason: image not found
2011-12-16 10:08:55.161 Adobe InDesign CS5[8071:903] Error loading /Applications/Adobe InDesign CS5/Plug-Ins/Autocat/AutocatUI.InDesignPlugin/AutocatUI: dlopen(/Applications/Adobe InDesign CS5/Plug-Ins/Autocat/AutocatUI.InDesignPlugin/AutocatUI, 265): Library not loaded: libboost_filesystem-xgcc42-mt-1_37.dylib
Referenced from: /Applications/Adobe InDesign CS5/Plug-Ins/Autocat/AutocatUI.InDesignPlugin/AutocatUI
Reason: image not found
Bus error
我可以通过复制usr / lib文件夹中的lib来解决这个问题。我的帖子没问题。但是在分发它时不会没问题。我想我的XCode项目中的链接器出了问题,但是看不出来。
我使用XCode 3.2.6。 libs出现在我的目标中,在“Link Binary With Libraries”下,以及“Groups& Files”下的“Libraries”文件夹中
我不确定这是否重要,但我的项目是Adobe InDesign的插件。
提前致谢。
答案 0 :(得分:0)
我正在纠正,但如果它是一个动态的lib,你必须在它分配给它的机器上拥有那个动态的lib。您可能有兴趣将动态库打包到安装向导中。
但是,如果它是一个静态库,您可以通过使用以下标志之一强制包含所有符号:
-Obj-C
-all_load
-force_load
可以在此处找到关于这些标志的作用以及如何使用它们的一个很好的解释:Objective-C categories in static library