我有一个非常简单的问题,过去 6 个小时左右我一直在努力弄清楚。我只想在 Mac OS X 上构建一个动态库,然后使用该库构建一个应用程序。我已经创建了 .dylib 并用它编译了测试应用程序,但是当我运行该应用程序时,我得到:
Joes-Mac-Pro:Desktop Joe$ ./test dyld:未加载库:./lib/simple_library.dylib 引用自:/Users/Joe/Desktop/./test 原因:找不到图片 跟踪/BPT 陷阱:5
我尝试在可执行目录中创建一个 lib 文件夹并将 dylib 放入其中,同样的错误。我试过将 dylib 放在可执行路径本身中,同样的错误。我尝试使用 install_name_tool 更改可执行文件中 dylib 的路径,没有任何变化,同样的错误。我尝试使用 -headerpad_max_install_names 构建测试应用程序,然后使用 install_name_tool 更改路径。仍然没有任何变化。同样的错误。
在 Mac 操作系统上我想做的事情是不可能的吗?我是这个平台的新手,并且习惯于在 Windows 和 GNU/Linux 上顺利工作。另外,我正在尝试使用命令行来完成所有这些工作。我非常希望避免使用 XCode。
编辑:哎呀,我傻了。原来我在我的 install_name_tool 参数中打错了字。现在一切正常。
最佳答案
install_name_tool 是正确的工具。
尝试 otool your_binary
查看缺少哪个 dylib。
还要确保您的二进制文件和链接库是为相同的架构构建的。
关于c++ - 如何在 Mac OS X 上构建和使用动态库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10194961/