我刚开始在Xcode工作,并试图让我的(C ++)命令行应用程序(Mac OS X的目标),以包括OpenCV的自己的动态库,这样我可以部署到别人的电脑,它会发现他们正确(没有他们的电脑需要安装到OpenCV的)。 但它没有在任何地方,除了看他们住在我的电脑(的/ opt / local / lib目录)上的位置。
当执行另一个系统上运行时,它抛出这样的错误:
未加载库:dyld的/opt/local/lib/libopencv_core.2.3.dylib引用自:/用户/ editc /桌面/ edge_display / edge_display原因:图片未找到
(注意,这是尽管libopencv_core.2.3.dylib包括在同一目录下的可执行文件。)
我如何得到它在应用程序的自己的目录看? 添加“./”的库搜索路径似乎什么也不做。
一些搜索表明,它应该在其应用程序捆绑的框架/目录中,但它不是产生的.app包出于某种原因,所以即使我改变安装目录,并添加步骤进行文件拷贝像在描述这个线程 ,因为我没有一个应用程序包,我没有一个框架目录。 因此,没有应用程序包,这种技术是行不通的。 (我不知道我甚至应用程序包生成或没有什么条件下理解。)
我的项目是在这里 ,供大家参考。 任何人都可以帮忙吗? 我仍然得到我的脚湿在Xcode和Mac OS X开发一般,所以道歉提前,如果这个问题似乎neophytic。
这东西总是开头难弄清楚。
你并不需要的框架复制到框架目录,因为你的项目是一个命令行程序。 当你犯了一个可可应用程序你只有一个应用程序包。 即使在这种情况下,你只需要在框架复制到框架目录,如果你要分发应用没有安装OpenCV的做谁的人。
请注意,这是尽管libopencv_core.2.3.dylib包括在同一目录下的可执行文件。
不要将库文件复制到可执行文件的文件夹。 就让它链接到文件在/ opt / local / lib目录
我下载了你的项目,并能得到它运行。 这是我做了(使用的Xcode 4):
- 从边缘显示文件夹中删除dylib文件(链接)
- 删除复制文件生成阶段那份库文件
- 删除
@executable_path/../Frameworks
安装目录设置 - 删除一切从
OpenCV Frameworks
文件夹中的Xcode项目 - 选择目标,选择Build阶段,扩大
Link Binary With Libraries
- 点击加号按钮,点击添加其他...,键入“/选择/ local / lib目录”,选择
libopencv_core.dylib
(注意我没有选择带版本号的文件) - 重复
libopencv_highgui.dylib
和libopencv_imgproc.dylib
(那些是你的项目需要的唯一库) - 将部署目标到OS X 10.6,因为这是我使用的是什么
- 单击运行,并得到这样的:
我的系统是比你有点不同,因为我的OpenCV的库安装在/ usr / local / lib目录,但你已经拥有的/ opt /本地/包括在该项目的头文件搜索路径,所以你应该罚款。
有使用OpenCV的库中的OS X的命令行项目的一些指令OpenCV的维基但他们书面的Xcode 3.我会尽量增加对Xcode的4一些更新的指令。
在项目设置,您可以使用@executable_path,以获得正确的位置。 希望帮助。
您也可以尝试加载自己从代码我猜图书馆..
文章来源: Trying to embed dynamic libraries along with C++ Xcode project, but they're not getting properly referenced