编译了libmt.dylib, 和 test 程序调用,均正常。在xcode中显示调用正常,隐式调用则出现问题。

提示

dyld: Library not loaded.

即使存在在/usr/lib/limt.dylib也同样报错误。 怀疑app运行时没有搜索到此dylib.

  在Mac 平台环境, 动态库(dylib)有一个 “install name”, 这个 安装名字是一个存在动态库里的路径,表明运行时去哪里找库。当连接动态库后,这个路径就保存在二进制文件里,因此程序执行时可以按照这个路径去查找动态库,否则就无法加载此动态库。

正常可以调用的动态库,通otool工具查看install name.

Mac-mini:bin root# otool -L libmt.dylib
libmt.dylib:
/usr/lib/libmt.dylib (compatibility version 0.0., current version 0.0.)
/usr/lib/libSystem.B.dylib (compatibility version 1.0., current version 1214.5.)
/usr/lib/libz..dylib (compatibility version 1.0., current version 1.2.)
/usr/lib/libxml2..dylib (compatibility version 10.0., current version 10.9.)

这就意味着要么通过设置环境变量DYLD_LIBRARY_PATH 来查找动态库,否则就只能将动态库放在指定的位置,即install name.

可以通过install_name_tool 工具设置 install name, 可以通过@rpath关键字指定相对路径到安装目录,通过@executable_path,@loader_path关键字指定路径到运行目录。

otool 设置install name

 install_name_tool -id "/usr/lib/libmt.dylib" libmt.dylib

或者相对路径

install_name_tool -id "@rpath/lib/libmt.dylib" libmt.dylib

参考

http://www.chilkatforum.com/questions/4235/how-to-distribute-a-dylib-with-a-mac-os-x-application

http://stackoverflow.com/questions/4876740/xcode-keeps-searching-dylib-at-wrong-path

build dynamic libraries for iOS and load them at runtime的更多相关文章

  1. 在命令行输入python出现“Warning:This Python interpreter is in a conda environment, but the environment has not been activated. Libraries may fail to load. To activate this environment please see https://conda.

    [现象] 在命令行输入python出现“Warning:This Python interpreter is in a conda environment, but the environment h ...

  2. build path libraries java基础--Jar包添加到build path方式说明--01

    摘自: http://blog.csdn.net/haolongabc/article/details/7007701 java基础--Jar包添加到build path方式说明--01 前言:这段短 ...

  3. 李洪强iOS经典面试题156 - Runtime详解(面试必备)

    李洪强iOS经典面试题156 - Runtime详解(面试必备)   一.runtime简介 RunTime简称运行时.OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 对于C ...

  4. [Angular] Lazy Load CSS at runtime with the Angular CLI

    Ever had the need for multiple "app themes", or even to completely dynamically load CSS ba ...

  5. iOS开发黑科技之runtime

    iOS 开发之黑科技-runtime runtime其实就是oc底层的一套C语音的API 调用方法的本质就是发消息, 1.动态交换两个方法的实现(特别是交换系统自动的方法) 2.动态添加对象的成员变量 ...

  6. Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute'

    [TypeLoadException: Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from as ...

  7. Runtime Error R6034 Application has attempt to load the C runtime library incorrectly

    1.问题描述 vs2015 去开发一个写入pg数据库的程序,使用libpqxx.dll,libpq.dll,这个库文件之前是用vs2008的程序中复制过来的,基于的运行时库应该是vs2008,现在开发 ...

  8. Remove Google Play Games libraries on iOS (Unity3D开发之二十一)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/48313653 ...

  9. Build opencv libraries for android arm, x86 ubuntu

    废话不多说. 准备工作: 1. 下载源代码: http://opencv.org/ 编译平台:ubuntu14.04 opencv 2.4.6.1 本人用这样的办法编译了opecv 2.4.9 的没有 ...

随机推荐

  1. 2013应届毕业生各大IT公司待遇整理汇总篇(转)

    不管是应届毕业生还是职场中人,在找工作时都必然会对待遇十分关注,而通常都是面试到最后几轮才知道公司给出的待遇.如果我们事先就了解大概行情,那么就会在面试之前进行比较,筛选出几个心仪的公司,这样才能集中 ...

  2. centos7 安装sqlserver驱动以及扩展

    安装sqlserver驱动 sudo su curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repo ...

  3. linux下搭建svn并同步更新至web目录

    安装svn 使用yum安装 yum install subversion -y 安装成功后查看版本库 svnserve  --version 生成目录 cd /var mkdir svn cd svn ...

  4. Linux 使用第三方邮箱发邮件的设置

    mail命令在Ubuntu下是需要安装的,使用下条命令进行安装: sudo apt-get install heirloom-mailx 在CentOS 下安装则是: yum install mail ...

  5. 分治——sqtx

    题目描述 Given a string s, partition s such that every substring of the partition is a palindrome. Retur ...

  6. reactjs--父组件调用子组件的内部方法(转载)

    reactjs--父组件调用子组件的内部方法 发表于2016/10/11 9:21:37  965人阅读 1.引入相关js <script src="js/react.js" ...

  7. linux lnmp搭建

    1.安装nginx: yum install gcc -y yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum inst ...

  8. Selenium入门6 操作元素,获取元素属性

    取元素的text,属性get_attribute,标签名tag_name 操作元素:send_keys输入,click点击,submit提交,clear清除输入 状态判断:is_display,is_ ...

  9. DP,得到最多苹果,(POJ2385)

    题目链接:http://poj.org/problem?id=2385 题意: 牛在两棵苹果树下收集苹果,牛只能在这两棵树之间走动w次,在t时刻,某棵树会掉下苹果. 解题报告: ///dp[t][w] ...

  10. Poj(1182),种类并查集

    题目链接:http://poj.org/problem?id=1182 再次熟练种类并查集,又积累点经验,和技巧,rank 0 2 1 先计算father[x] ,再更新rank[x]; #inclu ...