MAC下加载动态库

MAC引用动态库时报错:在这里插入图片描述

查看一个可执行文件或者动态库引用的第三方库路径:otool -L xxx.dylib

  • 第一行是动态库的安装名称(INSTALL Name)。当另一个客户端链接到这个 dylib 时,dylib 的安装 ID 会被复制到客户端中作为dylib的安装路径。
  • 后边的才是这个动态库引用到的第三方库

使用install_name_tool 的id参数来修改这个install name:
sudo install_name_tool -id @executable_path/../xxx.dylib xxx.dylib

将动态链接库添加到.app的搜索路径中:
install_name_tool -add_rpath /xxx/lib ./NetAnim

@executable_path :可执行程序所在的目录
@loader_path:表示每一个被加载的 binary (包括App, dylib, framework,plugin等) 所在的目录。
@rpath是一个类似Shell中的PATH的变量,程序在执行时会从@rpath指定的路径中寻找动态链接库文件。

MAC:@rpath的坑

踩坑1:install_name修改失败

在这里插入图片描述
库文件加载失败,通过otool -l xxx.dylib查看报错中的“command 5”。
在这里插入图片描述

  • 如果为一个Mac OS X版本构建对象,然后在早期的Mac OS X版本上使用该对象,则可能会发生“未知加载命令”错误。

Mac load命令损坏

otool-目标文件显示工具

相关推荐

  1. linux动态

    2023-12-11 06:56:05       18 阅读
  2. Qt Android 动态动态失败

    2023-12-11 06:56:05       15 阅读
  3. 【POSIX】运行时so动态

    2023-12-11 06:56:05       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-11 06:56:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-11 06:56:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-11 06:56:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-11 06:56:05       20 阅读

热门阅读

  1. rust宏(macro)详解

    2023-12-11 06:56:05       41 阅读
  2. MYSQL数据类型详解

    2023-12-11 06:56:05       39 阅读
  3. 数组 注意事项

    2023-12-11 06:56:05       28 阅读
  4. GraphSAGE

    GraphSAGE

    2023-12-11 06:56:05      36 阅读
  5. C/C++语言的安全编码规范

    2023-12-11 06:56:05       33 阅读
  6. 计算机视觉-机器学习-人工智能顶会 会议地址

    2023-12-11 06:56:05       35 阅读
  7. 【求职】外企德科-网易游戏测试面试记录

    2023-12-11 06:56:05       37 阅读
  8. git commit语义规范

    2023-12-11 06:56:05       33 阅读
  9. Docker安装教程

    2023-12-11 06:56:05       47 阅读