lzma編譯
A. 如何編譯lzma庫
下載lzma938.7z包,並解壓縮。
第一步:打開VS2010控制台。
第二步:轉到下面的地址
D:\SDK\lzma938\CPP\7zip\Bundles\Format7zR
第三步:使用命令「nmake NEW_COMPILER=1 MY_STATIC_LINK=1」
產生7zra.dll和7zra.lib文件。
B. 在編譯的時候出現這個問題在網上找了要在gcc後面加上-m32但還是不行求解答!
加-m32後要保證所有的引用都必須是32位的,並且所有編譯過的程序需要清空並重新編譯。
C. 詢問flash從4M改成16M要改openwrt的哪些文件後才能正確編譯出img
首先修改trunk/tools/firmware-utils/src/mktplinkfw.c
只修改fw_max_len為0xfc0000,16M
flash;只修改fw_max_len為0x7c0000,8M
flash
.id
= "4M",
.fw_max_len
= 0xfc0000,
.kernel_la
= 0x80060000,
.kernel_ep
= 0x80060000,
.rootfs_ofs
= 0x140000,新版只用改fw的大小,分區表會自動認,不用像老版自己定義每個分區大小了。
另外還需下面修改:
Imagebuilder
目錄下,./target/linux/ar71xx/image/Makefile,
把703n最後的4Mlzma改成了8Mlzma或16Mlzma
$(eval
$(call
SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,8Mlzma))
否則出現如下錯誤:
[mktplinkfw]
kernel length aligned to 914864
[mktplinkfw]
*** error: images are too big
make[3]:
[install] Error 255 (ignored)
在openwrt中不能更新uboot時,需要做如下修改:
target/linux/ar71xx/files/drivers/mtd/tplinkpart.c
parts[0].mask_flags
= MTD_WRITEABLE; //去除本行
D. 路由器的固件能反編譯嗎
可以進行反編譯。
路由器的固件通常存儲在FLASH中,通常都是以xxx.bin格式的文件形式保存的。bin格式是一種二進制文件,存儲的是路由器的機器碼,通過反編譯,可以將其還原為匯編碼,以便進行分析。獲取、反編譯及分析固件通常按下列步驟:
獲取路由器固件需要的環境
常見路由器的SPI FLASH編程器;
最好是用Winows 筆記本來登陸到ubuntu系統的台式機上的方式 ;
Windows 下的Putty、winhex、WinSCP軟體工具;
TTL線、網線、萬用表及烙鐵,熱風槍等工具和線材;
分析步驟
拆開對應的路由器設備的外殼;
查看路由器內部的的介面標識;
用萬用表找到對應的地線GND標號;
通常為了調試或升級的方便,都會保留TTL引腳;
查看是否存在有TTL線的引腳或觸點;
用准備好的TTL線連接路由器的TTL引腳或觸點;
windows下用putty中的串口項打開對應的TTL線連接的串口;
查看是否有路由器啟動的日誌信息,如果有,請仔細分析;
等路由信息啟動完畢後,看看是否有終端跳出來,是否有登陸窗口跳出;
如果有登陸窗口,但是無法輸入,或者無法猜測出對應的用戶名密碼;
用熱風槍或烙鐵取下路由器上的存儲FLASH晶元;
在Windows下用編程器提前存儲在FLASH晶元的全部固件;
用WinSCP工具將提取出的固件上傳到ubuntu系統中;
在ubuntu系統中安裝對應的固件分析工具(firmware-mod-kit、binwalk、lzma、squashfs-tools等);
用這些分析工具進行分析,分析出來後,解壓對應的數據包,提前對應的關鍵性數據進行分析。
按以上步驟可以實現對路由器的分析。
E. php 編譯報錯 undefined reference to `lzma_code@XZ_5.0' 求助大神幫解決 好幾天了 沒找到辦法。。。
可是為什麼要自己編譯PHP呢,lnmp集成環境不香嗎,即使不相信別人的集成環境,Debian和Redhat下也有APT和YUM包管理可以直接安裝php,
例如Ubuntu下執行apt install php7.3 即可安裝php7.3
F. 如何用ubuntu 12.04 32bit 編譯android 4.4.4
系統環境
系統:Ubuntu12.04 64位系統。
源碼:Android4.4源碼。
選擇Ubuntu12.04,是因為在14.04上沒能折騰成功,在上面兼容32位程序的配置有點煩。12.04必須要用64位的,編譯Android4.4時需要64位環境,同時要兼容32位程序,折騰。
步驟
配置jdk6
Android官方給的步驟是用OpenJdk,實測是不行的。網上找到https://jdk6.java.net/download.html
這個網址有需要的jdk,下載自解壓安裝包。自解壓後在當前目錄下生成一個jdk的目錄,打開/etc/environment,增加自己的jdk
bin目錄到PATH裡面。同時新增如下環境變數:
CLASSPATH=/path/to/your/local/jdk/dir/lib
JAVA_HOME=/path/to/your/local/jdk/dir
然後執行如下命令,設置系統的默認jdk:
$ sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.6.0_38/bin/java 300
$ sudo update-alternatives --install /usr/bin/javac javac /usr/local/java/jdk1.6.0_38/bin/javac 300
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/local/java/jdk1.6.0_38/bin/javaws 300
$ sudo update-alternatives --install /usr/bin/jar jar /usr/local/java/jdk1.6.0_38/bin/jar 300
$ sudo update-alternatives --install /usr/bin/javap javap /usr/local/java/jdk1.6.0_38/bin/javap 300
$ sudo update-alternatives --config java
安裝軟體包
能裝的都要裝上,以免編譯失敗,又要回過頭重裝,如下:
$ sudo apt-get install build-essential make gcc g++ libc6-dev texinfo
libncurses-dev git-core gnupg flex bison zip curl ncurses-dev libsdl-dev
zlib1g-dev ia32-libs libxml2-utils lzma
編譯源碼
到源碼目錄下,如下:
$ source build/envsetup.sh
$ lunch
選擇arm平台。
$ make -jn
n為CPU個數的兩倍,主要是提高編譯速度。
可能的錯誤
編譯過程碰到如下錯誤:
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
一般情況是因為前面的javap沒有配置所致。如果必須的軟體包沒有安裝,也會有類似的提示,仔細向上翻看錯誤提示,找到真正的錯誤地方,安裝對應的軟體包即可。
G. 請教:WR743N改了16M的flash怎麼從openwrt中編譯出來16M固件
首先修改trunk/tools/firmware-utils/src/mktplinkfw.c
只修改fw_max_len為0xfc0000,16M flash;只修改fw_max_len為0x7c0000,8M flash
.id = "4M",
.fw_max_len = 0xfc0000,
.kernel_la = 0x80060000,
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x140000,新版只用改fw的大小,分區表會自動認,不用像老版自己定義每個分區大小了。
另外還需下面修改:
Imagebuilder 目錄下,./target/linux/ar71xx/image/Makefile, 把703n最後的4Mlzma改成了8Mlzma或16Mlzma
$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,8Mlzma))
否則出現如下錯誤:
[mktplinkfw] kernel length aligned to 914864
[mktplinkfw] *** error: images are too big
make[3]: [install] Error 255 (ignored)
在openwrt中不能更新uboot時,需要做如下修改:
target/linux/ar71xx/files/drivers/mtd/tplinkpart.c
parts[0].mask_flags = MTD_WRITEABLE; //去除本行
H. 32位系統如何編譯android4.4
方法步驟:第一步:編譯Android 源代碼
第二部:安裝jdk
第三部:安裝編譯所需的工具
第四步:設置高速緩存加快編譯速度
編譯系統的要求
第一步:編譯Android 源代碼,Android官方推薦64位的ubuntu系統,最好是10.04的,對於10.10、11.10、12.04版本的ubuntu系統也是可以,但是小編一直習慣使用10.04的,所以幾年來一直沿用至今
請不要使用32位的Ubuntu系統,更不要使用10.04以下的ubuntu系統,不然編譯會出現很多都問題,會浪費更多的時間,有的比較難解決,對於新人來說,還不如重新安裝一個64位的ubuntu系統
下面小編來說說怎麼樣查看當前安裝好的ubuntu系統是多少位的
按照下圖所示的方法打開終端,然後輸入命令並執行 uname -ar,在最後輸出的信息中如果有amd64或者 x86_64 字樣,那麼就說明是64位的系統了,否則就是32位的系統了
android4.4源碼編譯環境搭建
第二部:安裝jdk
1jdk的安裝,雖然Android官方還是有介紹,現在jdk的安裝已經不支持使用添加源,然後用命令安裝了,只能取java官網下載jdk,然後安裝,然後將jdk的路勁添加到環境變數中,具體的安裝和添加變數的方法,可以查看本文參考資料中的文檔介紹,這里就不過多說明了
另外需說明的是,對於2.3版本以後的Android,需要使用jdk6,即jdk1.6,而不要使用jdk1.7的
android4.4源碼編譯環境搭建
2對於安裝好的jdk,並且添加了環境變數,我們可以輸入並執行命令java -version 來查看jdk版本,若是有類似下面的信息輸入,那麼說明jdk安裝成功了
android4.4源碼編譯環境搭建
END
第三部:安裝編譯所需的工具
1對於10.04的系統,我們只需要安裝下面這些軟體工具就可以了,直接復制到終端中,然後回車執行安裝就ok,安裝前保持電腦正常連接網路
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc
android4.4源碼編譯環境搭建
2對於10.10的ubuntu系統,需要先安裝下面的工具軟體,直接輸入執行下面的命令就可以安裝:
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc
android4.4源碼編譯環境搭建
3之後使用下面的命令做一個軟鏈接文件:
sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
android4.4源碼編譯環境搭建
4對於11.10的ubuntu系統,需要先安裝下面的工具,輸入並執行下面的命令:
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc
android4.4源碼編譯環境搭建
5然後再安裝這個對於11.10系統特別需要的工具
sudo apt-get install libx11-dev:i386
android4.4源碼編譯環境搭建
第四步:設置高速緩存加快編譯速度
設置告訴緩存可以加快我們的編譯速度,對於配置不是很高的電腦,最好是進行這個設置,這樣可以為我們節約很多都時間
先用vi或者gedit軟體打開宿主目錄下的.bashrc文件,然後在文件的最後添加:
export USE_CCACHE=1
之後保存退出,重新登陸系統,使設置生效
android4.4源碼編譯環境搭建
2在終端中,切換到源碼根目錄中,然後執行下面的命令,設置ccache的大小
prebuilts/misc/linux-x86/ccache/ccache -M 50G
其實ccache就是一個執行文件,後面的-M和50G是傳遞給ccache的參數,表示設置50G的緩存空間,這個大小可以根據我們的時間需要來修改
注意事項:
如果覺得小編的經驗還不錯,請點擊右邊的「關注TA」和「投票TA」,以方便隨時學習了解其他相關經驗
I. 如何編譯可以在Windows下運行的帶有Python支持的ARM Linux GDB
距離上次我編譯這種GDB的時間轉眼過了3年,現在(2017年3月6日),Linaro編譯器已經支持python了。不過,當我們自己使用的時候還是有一些麻煩的,因為Linaro編譯器的sysroot和平時我們用的sysroot還是不一樣的,需要在gdbinit文件裡面用"set sysroot"或"set solib-search-path"之類設定路徑。生在獅子座長成座的我,是無法容忍這種麻煩的,所以還是自己來弄一次。
還是在Linux下做MinGW的交叉編譯,需要MinGW交叉編譯器。
因為Linaro已經做了很多事情了,源碼,expat,python都搞定了,資源如下:
Linaro GDB git:
從這上面找到與Linaro編譯器版本對應的源碼
編譯用的expat和python:
編譯的時候只需要設定一個環境變數:
export PYTHON_MINGW=/home/c/gdb-arm/python-2.7.4-mingw32
然後配置一下就行了:
./configure --host=i586-mingw32msvc --target=arm-linux-gnueabihf --with-libexpat-prefix=/home/c/gdb-arm/expat-2.1.0-1 --without-libunwind-ia64 --without-libunwind-ia64 --without-lzma --with-python=/home/c/gdb-arm/python-2.7.4-mingw32 --without-guile --without-babeltrace --with-sysroot=/opt/sysroot-arm
然後就可以:
make
make DESTDIR= install
J. 如何在windows下編譯Chrome源代碼
一,編譯之前的准備。
1) 了解代碼組織結構。
Chrome source非常龐大,並且在其主目錄下還包含有工具和組件,任何一個工具和組件也附帶有其源代碼。首先得熟悉這些源代碼的組織結構,在http://src.chromium.org/svn/中包含如下子目錄:releases,曾經發布過的chrome源代碼的正式版本;trunk,當前最新的源代碼。由於releases中的代碼比較舊,這里就不做說明了,只說明trunk的結構。在trunk下面有3個重要的目錄,deps包含了chrome編譯和運行所需要的全部組件的代碼。src裡麵包含的則是chrome的主程序的代碼,tools包含的是下載和配置編譯所需要的第三方工具的壓縮包和源代碼,其中就有svn和python這2個比較重要的工具,後面再詳細介紹。暫時做這樣一個簡單的介紹,因為其組織結構比較負責,以後再作補充斧正。
2)如何下載和同步源代碼。
首先談談下載:
1,最簡單的方法是從chrome官網上直接下載源代碼壓縮包,地址是http://build.chromium.org/buildbot/archives/chromium_tarball.html。
2,或者採用svn從http://src.chromium.org/svn/trunk/src這個地方heckout,這要求你先在本地建一個源代碼的主目錄。
3,另外一個辦法則是採用google提供的一個部署工具depot_tools。雖然這幾種辦法都可下載完整的源代碼,但目前的情況是:chrome基於Visual Stdio 2005 進行編譯,如果順利完成編譯工作,自然少不了sln文件,較早的源代碼中包含有現成的sln和vcproject文件,但後來做了修改,這些文件被拋棄掉,Google自己開發了一種腳本工具叫做GYP,這個工具採用python編寫,GYP採用了自定義的一套規則,用於生成各種工程文件。而關鍵的python則包含於depot_tools中,因此不論採用什麼方法下載的代碼,都得下載depot_tools這個工具,以獲得必須的工程文件。
depot_tools位於 http://src.chromium.org/svn/trunk/tools 下面,包括一個目錄和一個zip格式的壓縮包。
3)關於編譯器
前面提到Chrome採用Visual Stdio 2005進行編譯,根據http://dev.chromium.org的說明,需進行如下操作正常編譯
a, 安裝Visual Studio 2005.
b, 安裝Visual Studio 2005 Service Packe 1.
c, 安裝Visual Studio Hotfix 947315.
d, 如果是vista系統,還需安裝Visual Studio 2005 Service Packe 1 Update for Windows Vista.
e, 安裝Windows 2008 SDK,如果是Visual Studio 2008則不需要這一步。
f, 配置Windows 2008 SDK,使2008 SDK成為首選開發庫,以獲得一些新功能和特性。辦法是在開始->程序->Microsoft Windows SDK v6.1 > Visual Studio Registration > Windows SDK Configuration Tool,選擇make current按鈕。也可以在VS裡面手動配置include和libary路徑,效果是一樣的。
二,如何配置工程文件
1,如果是採用depot_tools,那麼從代碼下載到生成sln文件會自動完成。其步驟是
(1)下載depot_tools到本地存儲,假設位於d:/depot_tools.
(2)將d:/depot_tools添加到系統環境變數中。
(3)創建一個源代碼根目錄,假設為 d:/chrome,目錄不得包含空格。
(4)在命令行下切換當前目錄到d:/chrome。
(5)執行命令 gclient config http://src.chromium.org/svn/trunk/src ,該命令會首先下載svn和python分別到d:/depot_tools/svn_bin和d:/depot_tools/python_bin。
(6)執行命令 gclient sync 這個命令會調用svn同步源代碼。這個過程會比較漫長。全部完成之後全部源代碼就保存在d:/chrome裡面。未編譯的代碼大約有4個G左右,過程將十分漫長。這樣獲得的源代碼已經包含所有的工程文件,可直接打開。
重點說明一下gclient,它實際上是一個批處理文件,它主要做了如下一些事情,首先設置環境變數,如代碼根目錄,工具根目錄等。其次調用win_tools.bat從伺服器下載svn和python。最後調用python.exe對Chrome.gyp進行解析生成所有工程文件。
另外需要說明的是,gclient sync的過程非常漫長,根據命令行的提示來看總共需要同步67個項目(不是工程),期間可能會因為一些原因導致錯誤而退出這個過程,需要繼續調用sync。比如網路出現故障svn會多次進入sleep狀態然後重試,如果多次失敗就會報錯退出,還有的情況是某些子目錄的屬性問題無法同步,可根據提示進行操作。還有個目前新出現的問題,下面2個目錄「src/webkit/data/layout_tests/LayoutTests」和「src/third_party/WebKit/LayoutTests」的源代碼是從src.webkit.org簽出來的,但是這個網站目前存在問題無法簽出代碼, 需要屏蔽掉這2個目錄,由於裡面是測試代碼,即使丟棄也不會影響整個工程的編譯,方法是打開trunk下面的.gclient文件,向裡面添加如下內容
"custom_deps" : {
"src/webkit/data/layout_tests/LayoutTests":None,
"src/third_party/WebKit/LayoutTests":None,
},
這樣svn就能完成代碼的同步了。最後gclient會調用depot_tools/python_bin/python.exe 對 src/build/gyp_
chromium進行處理,這樣就得到了所有的sln和vcproject文件。
2,如果是下載的代碼壓縮包或者checkout的代碼,代碼目錄裡面沒有sln文件,這個時候需要調用命令行進入源代碼根目錄,然後執行命令 gclient runhooks --force,命令執行後會直接對Chrome.gyp進行解析,生成sln文件。
在實際下載過程中,最開始的時候我用TortoiseSVN從http://src.chromium.org/svn/trunk/src checkout源代碼,但是得到的代碼只有幾百兆,執行gclient runhooks --force命令後也沒有找到sln文件,具體原因未知,不建議使用此方式。而直接下載代碼壓縮包的方式沒有嘗試過,不知道是否可行。因此最穩妥的方法還是使用depot_tools來部署和處理源代碼。
三 編譯工程
啟動Visual Studio 2005打開 src/chrome/browser/chrome.sln,或者打開src/build/all.sln,如果打開的是chrome.sln裡麵包含480個工程,而all.sln則包含507個工程,一些09年的編譯說明提到有300左右的工程,可見chrome的代碼變動比較大。對整個解決方案進行編譯,打開需要2個小時才能完成編譯,視硬體環境而定,內存越大越快,推薦4G以上內存,酷睿2核或者4核。編譯完成以後據說會佔用30G的空間。編譯後的文件位於 d:/chorme/chrome/debug 目錄或者 d:/chorme/chrome/release目錄下。
四 chrome涉及的開源項目
Chrome 採用了很多開源項目,這里把它們列出來以備後用,目前Chrome涉及25個開源代碼:
1、Google Breakpad
/src/breakpad
開源的跨開台程序崩潰報告系統。
2、Google URL
/src/googleurl
Google小巧的URL解析整理庫。
3、Skia
/src/skia
矢量圖引擎。
4、Google v8
/src/v8
Google開源的JavaScript引擎。V8實現了ECMA-262第三版的ECMAScript規范,可運行於Windows XP 和 Vista, Mac OS X 10.5 (Leopard), 及 Linux等基於IA-32 或 ARM 的系統之上。V8可單獨運行也可嵌入到任何C++程序中。
5、Webkit
/src/webki
開源的瀏覽器引擎
6、Netscape Portable Runtime (NSPR)
/src/base/third_party/nspr
Netscape Portable Runtime (NSPR) 提供了系統級平台無關的API及類似libc的函數。
7、Network Security Services (NSS)
/src/base/third_party/nss
Network Security Services (NSS) 一套用於支持伺服器端與客戶端安全開發的跨平台函數庫。程序通過NSS可支持SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 認證及其它一些安全標准。
8、Hunspell
/src/chrome/third_party/hunspell
Spell checker and morphological analyzer library and program designed for languages with rich morphology and complex word compounding or character encoding.
9、Windows Template Library
/src/chrome/third_party/wtl
用於開發Windows程序與UI組件的C++ library。WTL擴展了ATL (Active Template Library) 並提供一套用於controls, dialogs, frame windows, GDI objects等開發的類。
10、Google C++ Testing Framework
/src/testing/gtest
Google用於編寫C++測試的基於xUnit架構的框架,可用於多種平台上:Linux, Mac OS X, Windows, Windows CE, and Symbian。支持自動測試發現,有一套豐富的Assertions斷言,用於可自定義斷言,death tests, fatal and non-fatal failures, various options for running the tests, and XML test report generation.
11、bsdiff 與 bspatch
/src/third_party/bsdiff 及 /src/third_party/bspatch
bsdiff 與 bspatch 用於為二進制文件生成補丁。
12、bzip2
/src/third_party/bzip2
bzip2使用Burrows-Wheeler block sorting text compression 演算法與Huffman編碼壓縮文件。
13、International Components for Unicode (ICU)
/src/third_party/icu38
ICU是一套成熟並被廣泛使用的C/C++ 及 Java 庫,可為軟體提供Unicode與全球化支持。
14、libjpeg
/src/third_party/libjpeg
用於處理JPEG (JFIF)圖像格式的庫。
15、libpng
/src/third_party/libpng
PNG圖像格式庫。支持絕大部分的PNG特性,可擴展。已經被廣泛地使用了13年以上了。
16、libxml
/src/third_party/libxml
C語言的XML解析庫。
17、libxslt
/src/third_party/libxslt
C語言的XSLT庫。
18、LZMA
/src/third_party/lzma_sdk
LZMA為7-Zip軟體中7z格式壓縮所使用的壓縮演算法,有很好的壓縮效果。
19、stringencoders
/src/third_party/modp_b64
一系列高性能的c-string轉換函數,比如:base 64 encoding/decoding。通常比其標准實現快兩倍以上。
20、Netscape Plugin Application Programming Interface (NPAPI)
/src/third_party/npapi
多種瀏覽器使用的跨平台插件架構。
21、Pthreads-w32
/src/third_party/pthread
用於編寫多線程程序的API
22、SCons - a software construction tool
/src/third_party/scons
開源的軟體構建工具——下一代的編譯工具。可以認為SCons是改進過的跨平台配上autoconf/automake與ccache的Make工具的子系統。
23、sqlite
/src/third_party/sqlite
大名鼎鼎的嵌入式資料庫引擎。自管理、零配置、無需伺服器、支持事務。
24、TLS Lite
/src/third_party/tlslite
SSL 3.0, TLS 1.0, and TLS 1.1的Python免費實現庫。TLS Lite支持這些安全驗證方式:SRP, shared keys, and cryptoIDs in addition to X.509 certificates。註:Chrome並不包涵Python。TLS Lite用於Chrome開發過程中的代碼覆蓋、依賴檢查、網頁載入時間測試及生成html結果比較等。
25、zlib
/src/third_party/zlib
zlib為一套用於任意平台與機器的無損數據壓縮的庫,它免費、自由、無任何法律專利問題。