国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

交叉編譯libpng以及zlib開(kāi)源庫(kù)

2019-11-10 18:10:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

關(guān)于linux開(kāi)源庫(kù)的編譯過(guò)程,特別是在嵌入式系統(tǒng)中使用; 這里寫圖片描述 上圖完美詮釋了我本次編譯的環(huán)境和運(yùn)行目標(biāo); 下載zlib-1.2.8.tar.gz和libpng-1.6.17.tar.gz。

admin@Ubuntu:~/src$ tar -zxvf libpng-1.6.17.tar.gzadmin@ubuntu:~/src/libpng-1.6.17$ ./configurechecking for a BSD-compatible install... /usr/bin/install -cchecking whether build environment is sane... yeschecking for a thread-safe mkdir -p... /bin/mkdir -pchecking for gawk... no......checking for zlibVersion in -lz... nochecking for z_zlibVersion in -lz... noconfigure: error: zlib not installedadmin@ubuntu:~/src/libpng-1.6.17$

發(fā)現(xiàn)配置libpng-1.6.17出現(xiàn)了錯(cuò)誤,找不到zlib。 因?yàn)閘ibpng開(kāi)源庫(kù)的編譯需要zlib庫(kù)的支持; 所以下載了zlib-1.2.8.tar.gz; 編譯zlib庫(kù) zlib編譯的過(guò)程比較簡(jiǎn)單,./configure不傳入?yún)?shù),作者的初衷就是為了使zlib的編譯配置過(guò)程更為簡(jiǎn)單; 這里使用gcc編譯時(shí)特別順利,但是使用嵌入式平臺(tái)的交叉編譯工具鏈(arm-none-linux-gnueabi-g++)編譯時(shí)出現(xiàn)了大量錯(cuò)誤; 因?yàn)閦lib-1.2.8.tar.gz使用了部分不完全符合通用的語(yǔ)法,交叉編譯工具無(wú)法識(shí)別,比如:

/* ========================================================================= */int ZEXPORT deflateInit_(strm, level, version, stream_size) z_streamp strm; int level; const char *version; int stream_size;{ return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, version, stream_size); /* To do: ignore strm->next_in if we use it as window */}/* ========================================================================= */

需要重新更改為:

/* ========================================================================= */int ZEXPORT deflateInit_(//strm, level, version, stream_size) z_streamp strm, int level, const char *version, int stream_size){ return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, version, stream_size); /* To do: ignore strm->next_in if we use it as window */}/* ========================================================================= */

終于還是編譯過(guò)了;

admin@ubuntu:~/src/zlib-1.2.8$ export CC=arm-none-linux-gnueabi-c++ admin@ubuntu:~/src/zlib-1.2.8$ ./configureadmin@ubuntu:~/src/zlib-1.2.8$ make cleanadmin@ubuntu:~/src/zlib-1.2.8$ make

編譯完成得到libz.a庫(kù)。

下面可以編譯libpng-1.6.17而得到libpng.a和libpng.so;

admin@ubuntu:~/src/libpng-1.6.17$ export LDFLAGS="-L/home/admin/src/zlib-1.2.8"admin@ubuntu:~/src/libpng-1.6.17$ export CPPFLAGS="-I/home/admin/src/zlib-1.2.8"admin@ubuntu:~/src/libpng-1.6.17$ ./configure CC=arm-none-linux-gnueabi-g++ --PRefix=$PWD/_install --host=arm-linuxadmin@ubuntu:~/src/libpng-1.6.17$ make && make install

–prefix=配置編譯輸出的結(jié)果存放的目錄,得到的是:

admin@ubuntu:~/src/libpng-1.6.17$ cd _install/admin@ubuntu:~/src/libpng-1.6.17/_install$ lsbin include lib shareadmin@ubuntu:~/src/libpng-1.6.17/_install$ ls liblibpng16.a libpng16.la libpng16.so libpng16.so.16 libpng16.so.16.17.0 libpng.a libpng.la libpng.so pkgconfigadmin@ubuntu:~/src/libpng-1.6.17/_install$ admin@ubuntu:~/src/libpng-1.6.17/_install$ ls include/libpng16/pngconf.h png.h pnglibconf.h

這里中間有個(gè)小細(xì)節(jié)要關(guān)注一下,就是libpng庫(kù)跟zlib庫(kù)有點(diǎn)小小不同的地方,zlib庫(kù)編譯的時(shí)候直接make命令就可以編譯出libz.a和libz.so到當(dāng)前目錄,但是如果只使用make命令編譯libpng庫(kù),在當(dāng)前目錄無(wú)法找到libpng.a和libpng.so;還是需要遵循文檔說(shuō)明使用make和make install命令:

admin@ubuntu:~/src/libpng-1.6.17$ make && make install

zlib-1.2.8.tar.gz和libpng-1.6.17.tar.gz 文件下載: http://download.csdn.net/detail/dreamintheworld/9750360 或者直接官網(wǎng)下載: http://www.zlib.net/ http://www.libpng.org/pub/png/libpng.html


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿鲁科尔沁旗| 遂宁市| 密山市| 三台县| 社会| 措美县| 旬阳县| 陵水| 枝江市| 和田县| 宾阳县| 廊坊市| 海宁市| 清新县| 海丰县| 九龙城区| 新营市| 高陵县| 洛阳市| 柳河县| 庆城县| 灯塔市| 建水县| 阜平县| 岱山县| 册亨县| 乌兰浩特市| 会宁县| 安福县| 舟山市| 阿克苏市| 乐平市| 色达县| 那曲县| 巴南区| 盈江县| 丘北县| 华亭县| 新民市| 化隆| 铜川市|