問候,使用不同版本zlib.so比系統的使用Python的cdll導入
我試圖修改的zlib和測試的行爲,所以我寫了mylib.c
和mylib.h
。這形成了一個用於在內部調用zlib函數的包裝器(如InflateInit2()
)。我編譯/用下面的命令鏈接:
gcc -g -Wall -Werror -c -std=c99 -I./zlib-1.2.5 -I./ -fPIC mylib.c
gcc -shared mylib.o -o mylib.so
然後我使用它導入到蟒蛇:
mylib = cdll.LoadLibrary(os.getcwd() + '/mylib.so')
我需要一個版本比一個安裝在我的系統上的其他的zlib,所以我從源代碼下載並編譯了一個不同的文件(在我的系統上安裝它使其不穩定)。我現在面臨的問題是,在python中使用mylib時,未反映自定義編譯的zlib源文件中的更改。 Python(或者我編譯mylib.so
的方法)必須使用系統版本的zlib。有什麼方法可以指定zlib.so的「正確」版本。
您在這方面是正確的,但它是我打算使用MYLIB我libz進行復制鏈接到mylib.so-作爲定製的包裝libz進行。我想保存我在其他C項目中使用的zlib的自定義用法,只是使用了python,以便我可以快速輕鬆地爲C函數編寫測試。同時編輯問題以使其更清楚。 – user17925 2011-03-04 14:01:40