使用CMake(我使用Xcode作为生成器,其他选项不起作用)我在桌面上为 assimp 4 库构建了一个Xcode项目并编译了该项目。然后我将生成的库连接到我的 Mac OS 项目:将其添加到该部分并在. 所以它起作用了,我的项目正在使用这个库编译和加载模型。.dylibLink Binary with LibrariesHeader Search Paths
CMake创建了一个 223 MB 的assimp Xcode 项目,尽管最终文件.dylib只有 23 MB 并且其标头小于 1 MB。另外,我的桌面上不需要这个assimp项目文件夹。因此,我决定移动带有标题的库并删除其他文件。
在 Mac OS 下的 Xcode 项目中,我删除了对.dylib assimp及其头文件的引用,然后重复所有相同的步骤以包含库,并使用新路径。结果,我设法无错误地构建项目并运行它,但随后立即弹出错误:__abort_with_payload. Clean我尝试使用以及其他一些技巧来清理项目,但没有任何帮助。我还尝试保存assimp项目目录并将其从桌面上删除,但它仍然会导致相同的运行时错误。
如何解决这个问题?我希望有另一种方法,而不是简单地重新编译库项目,这是一个非常令人沮丧的过程。为什么会这样?也许它.dylib存储了创建它的项目中其他文件的路径?还是我只是错过了包含库的一些步骤?
Xcode版本:8.3.3。
解决方案
感谢@arrowd的提示,仍然需要安装库项目才能将生成的文件保存在系统目录中。但是,Xcode 中的目标install给出了无法复制文件的错误。所以我以一种新的方式构建了项目(使用Unix Makefiles生成器),然后在生成的项目文件夹中我执行make构建项目并sudo make install以管理员权限安装,以便脚本可以复制到系统文件夹。结果,头文件在这里结束:
/usr/local/include/assimp
文件.dylib在这里:
/usr/local/lib/libassimp.4.0.0.dylib
之后,在应该使用该库的Xcode项目中,您需要执行以下操作:
在
Biuld Settings您需要添加的部分中/usr/local/include/至Header Search Paths/usr/local/lib/至Library Search Paths
在
Build Phases您需要将.dylib库附加到Link Binary with Libraries.
但是,我们还没有弄清楚为什么会发生这种情况;欢迎对此发表评论。
编译后安装 assimp。如果
make编译时使用,则make install. 这会将所有必要的文件复制到CMAKE_INSTALL_PREFIX,然后可以删除编译它的目录。