用自己的庫替換系統庫

2021-07-09 13:31:01 字數 732 閱讀 7915

需要實現的功能是用自己寫的庫代替系統庫提供的一些函式

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位就好了

0

給主人留下些什麼吧!~~

Linux中用編譯的Zlib庫替換系統自帶的

環境 centos 5.8 64位 系統自帶zlib 1.2.1 安裝版本 1.2.3 這段時間在重新編譯lnmp,發現linux中很多軟體對zlib依存都比較大,但是系統中安裝的版本都比較低,如果用yum直接公升級的話,安裝nginx時候沒法指定zlib的目錄,所以要編譯安裝zlib。編譯的話,如...

Linux中用編譯的Zlib庫替換系統自帶的

環境 centos 5.8 64位 系統自帶zlib 1.2.1 安裝版本 1.2.3 這段時間在重新編譯lnmp,發現linux中很多軟體對zlib依存都比較大,但是系統中安裝的版本都比較低,如果用yum直接公升級的話,安裝nginx時候沒法指定zlib的目錄,所以要編譯安裝zlib。編譯的話,如...

safe rm替換系統的rm

替換系統的rm,以防出現rm rf 這樣的毀滅性錯誤。系統centos7系統 wget c 解壓 tar zxf safe rm 0.12.tar.gz cd safe rm 0.12 把safe rm替換系統的rm mv safe rm usr local bin rm chown root ro...