Chinaunix首页 | 论坛 | 博客

分类: 系统运维

2012-04-24 16:22:50

需要实现的功能是用自己写的库代替系统库提供的一些函数

1. Linux 和 大部分Unix
  1. export LD_PRELOAD=./mylib.so
Linux下可能遇见的错误:
  1. error while loading shared libraries: /root/workspace/myopen/Debug/mylib.so: cannot restore segment prot after reloc: Permission denied
解决办法:
  1. chcon -t texrel_shlib_t /root/workspace/myopen/Debug/mylib.so

2. Mac OS X
  1. export DYLD_INSERT_LIBRARIES=./mylib.so
  2. export DYLD_FORCE_FLAT_NAMESPACE=1
Mac OS X可能遇见的错误:
  1. dyld: could not load inserted library: /opt/local/lib/mylib.dylib Trace/BPT trap
解决办法:
用lipo查看原因
  1. lipo -info /opt/local/lib/mylib.dylib
我的这个问题产生的原因是库是32位的,编译成64位就好了
阅读(3630) | 评论(4) | 转发(1) |
给主人留下些什么吧!~~

zhanleewo2012-04-25 17:47:35

十七岁的回忆: 很详细的说,不错的文章,值得看看.....
3Q,多来看看,会有很多不错的东西会陆续写出来

zhanleewo2012-04-25 17:45:57

重返人生: 很有用啊,博主辛苦~.....
确实很有用,你可以用它来实现一个透明的socket代理

重返人生2012-04-25 16:00:17

很有用啊,博主辛苦~

十七岁的回忆2012-04-25 15:54:18

很详细的说,不错的文章,值得看看