0

我在 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 文件夹中的库来解决。我的帖子上没问题。但是分发时就不行了。我认为我在 XCode 项目中的链接器做错了,但看不到什么。

我使用 XCode 3.2.6。这些库出现在我的目标中,在“Link Binary With Libraries”下,以及 Groups&Files 下的“Libraries”文件夹中

我不确定这是否重要,但我的项目是 Adob​​e InDesign 的插件。

提前致谢。

4

1 回答 1

0

我说的是在更正中,但如果它是一个动态库,你必须在它被分发到的机器上拥有那个动态库。您可能有兴趣将动态库打包到您的安装向导或其他东西中。

但是,如果它是静态库,则可以使用以下标志之一强制包含所有符号:

-Obj-C
-all_load
-force_load

关于这些标志的作用以及如何使用它们的一个很好的解释可以在这里找到:Objective-C categories in static library

于 2012-01-24T13:11:19.587 回答