需要实现的功能是用自己写的库代替系统库提供的一些函数
1. Linux 和 大部分Unix- export LD_PRELOAD=./mylib.so
Linux下可能遇见的错误:
- error while loading shared libraries: /root/workspace/myopen/Debug/mylib.so: cannot restore segment prot after reloc: Permission denied
解决办法:
- chcon -t texrel_shlib_t /root/workspace/myopen/Debug/mylib.so
2. Mac OS X- export DYLD_INSERT_LIBRARIES=./mylib.so
- export DYLD_FORCE_FLAT_NAMESPACE=1
Mac OS X可能遇见的错误:- dyld: could not load inserted library: /opt/local/lib/mylib.dylib Trace/BPT trap
解决办法:
用lipo
查看原因- lipo -info /opt/local/lib/mylib.dylib
我的这个问题产生的原因是库是32位的,编译成64位就好了
阅读(3621) | 评论(4) | 转发(1) |