工程配置中,有三个路径和库的加载息息相关:

1、@executable_path

可执行文件的路径,例如/Applications/WeChat.app/Contents/MacOS。

2、@loader_path

被加载的二进制的路径,若该二进制是可执行文件,则@loader_path等价于@executable_path。

适用于非可执行二进制嵌套的场景,例如frameworkA包含frameworkB,frameworkB的加载路径就可以根据frameworkA的@loader_path给出。

3、@rpath

即run path,对应于工程配置中的Runpath Search Paths。是一个或者多个路径的列表,类似于环境变量$PATH。

当库的加载路径出错时,就会报如下错误:

dyld: Library not loaded

这时可以利用otool工具查看二进制依赖的库,例如Mac微信:

otool -L /Applications/WeChat.app/Contents/MacOS/WeChat  

然后使用install_name_tool工具来修正错误路径即可。

参考链接:

https://wincent.com/wiki/%40executable_path%2C_%40load_path_and_%40rpath

Objective-C @executable_path、@loader_path和@rpath的更多相关文章

  1. Mac OSX中的@executable_path, @load_path和@rpath的理解

    本文转载自:https://wincent.com/wiki/@executable_path,_@load_path_and_@rpath.个人觉得写的很不错,简洁明了. Absolute path ...

  2. Mac OSX中的@executable_path, @load_path和@rpath的理解(网摘)

    Mac OSX中的@executable_path, @load_path和@rpath的理解 原文出处:[24K纯开源] Note: this article is actually about t ...

  3. MacOS平台下@rpath在动态链接库中的应用

    一.背景介绍 公司开发的一个底层库被用在了Mac平台的多个产品中.在开发这个底层库的初期,对于Mac OSX下的Install name 并没有过多的了解.对于XCode中的install name项 ...

  4. XCode日常使用备忘录

    0. Introduction XCode是macOS上开发app不可缺少的开发者工具,不管是开发macOS上的应用,还是iOS上的应用,都离不开XCode环境.尽管其易用性广受诟病,但由于苹果app ...

  5. OS X 下动态库的引用

    foo.c #include <stdio.h> void foo(void) { printf("foo.\n"); } main.c #include <st ...

  6. file not found app文件

    昨天svn迁移.然后又一次check out之后编译遇到这个错误. Ld Build/Products/Debug-iphonesimulator/wiseCloudCrmTests.xctest/w ...

  7. Automake

    Automake是用来根据Makefile.am生成Makefile.in的工具 标准Makefile目标 'make all' Build programs, libraries, document ...

  8. @rpath/libswiftCore.dylib问题

    dyld: Library not loaded: @rpath/libswiftCore.dylib  Referenced from: /private/var/containers/Bundle ...

  9. ios dyld: Library not loaded: @rpath/xxx.framework/xxx 之根本原因

    碰到问题 dyld: Library not loaded: @rpath/xxx.framework/xxx Referenced from: /var/containers/Bundle/Appl ...

随机推荐

  1. returnFunc.js

    var cyn = function(){ console.log("one") return function(){ console.log("two") } ...

  2. blfs(systemv版本)学习笔记-使用apache创建简单的网页服务器

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! apache项目地址:http://www.linuxfromscratch.org/blfs/view/stable/serv ...

  3. 原生JS强大DOM选择器querySelector与querySelectorAll

    在传统的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 DOM 选择方法并不多,仅仅局限于通过 tag, name, id ...

  4. unresolved external symbol boost::throw_exception

    使用boost库,VS生成的时候一直报错, error LNK2019: 无法解析的外部符号 "void __cdecl boost::throw_exception(class std:: ...

  5. VirtualBox下安装CentOS7系统

    本文假定你已经知道如何安装VirtualBox虚拟机软件,并且已经安装好了. 首先我们需要准备好centos的iso镜像文件,可以从centos的官网下载. 以下操作使用的VirtualBox版本号是 ...

  6. [20171225]没有备份数据文件的恢复.txt

    [20171225]没有备份数据文件的恢复.txt --//别人问的问题,增加了数据文件没有备份,如何恢复,实际上很简单,因为当前控制文件有记录建立时间只要从建立数据文件开始的--//归档日志都存在恢 ...

  7. java基础-温故而知新(02)

    基本数据的自动拆装箱及享元设计模式 1.1 自动装箱        -128~127 之间的整数,装在一个内存区域.         超过这个范围的整数,装在不同的内存区域. 1.2 自动拆箱     ...

  8. dell t130服务器安装windowsserver2008R2系统

    dell T130服务器系统是可以安装windowsserver2008R2系统. 总共8个USB端口: 后置USB:2个USB 3.0和4个USB 2.0 前置USB:1个USB 2.0和1个USB ...

  9. iris数据集(.csv .txt)免费下载

    我看CSDN下载的iris数据集都需要币,我愿意免费共享,希望下载后的朋友们给我留个言 分享iris数据集(供学习使用): 链接: https://pan.baidu.com/s/1Knsp7zn-C ...

  10. 转载------------C函数之memcpy()函数用法

    转载于http://blog.csdn.net/tigerjibo/article/details/6841531 函数原型 void *memcpy(void*dest, const void *s ...