導航:首頁 > 源碼編譯 > zlib編譯

zlib編譯

發布時間:2022-02-05 10:38:15

『壹』 交叉編譯opencv 自動生成zlib嗎

第一步,安裝交叉編譯工具arm-linux-gcc-4.3.2
xgy@ubuntu:~/toolchain$mkdir arm
xgy@ubuntu:~/toolchain$cd arm
xgy@ubuntu:~/toolchain/arm$tar xvf arm-linux-gcc-4.3.2
解壓後,在當目錄下會多一個usr目錄,由於我不喜歡這目錄太深,然後就執行如下命令
xgy@ubuntu:~/toolchain/arm$cp -rv usr/local/* .
xgy@ubuntu:~/toolchain/arm$rm -rf usr
接下來設置環境變數PATH,執行命令如下:
xgy@ubuntu:~/toolchain/arm$cd
xgy@ubuntu:~$vi .bashrc
在.bashrc文件的最後加入:exportPATH=$PATH:/home/xgy/toolchain/arm/4.3.2/bin 保存退出(:wq)
xgy@ubuntu:~$source .bashrc //使剛設置的值生效
到此本來交叉編譯工具就已經安裝成功了的,可經過檢查卻發現下圖中左列的arm-linux-g++,arm-linux-gcc是4.3.3版本的(用命令arm-linux-gcc -v 查看),而其它的確是版本的,4.3.2這是一個奇怪現象!

因為我曾試過用4.3.3版本的g++交叉編譯opencv2.0總是出錯如下:

在這里,我只好創建軟鏈接,使它指向右側的arm-none-linux-gnueabi-g++,arm-none-linux-gnueabi-gcc。在創建之前先對原來的兩個文件做備份。執行命令如下:

在這里再次檢查下arm-linux-gcc及arm-linux-g++的版本
命令arm-linux-gcc –v 輸出的最後一行是應該是:gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)在這里說明下,這個很重要:現在所用的arm-linux-gcc實際上使用的是~./toolchain/arm/4.3.2/bin/目錄下的arm-none-linux-gnueabi-gcc,而它的include為arm/4.3.2/arm-none-linux-gnueabi/include,對應的lib為arm/4.3.2/arm-none-linux-gnueabi/lib,也就是說,你如果用arm-linux-gcc編譯程譯的話,對頭文件它預設的就找arm/4.3.2/arm-none-linux-gnueabi/include,對庫它預設的就找 arm/4.3.2/arm-none-linux-gnueabi/lib,而不是/usr/include /usr/lib,所以如果你要加什麼.h .a .so文件的話,記著一定要把這些文件加到這兩個目錄下去,不然這個交叉編譯器會告你找不到所要的庫或頭文件。這里的原理對於其它交叉編譯器也適應(主要指目錄結構),只是可能目錄名不一樣。
OK,到此,交編譯器安裝成功!
2012-11-2 今天換了一個4.3.2版本的arm-linux-gcc沒有發現上面的問題,也許是我以前在復制的時候出錯了,用cp命令時最好使用-a選項。
由於opencv2.0依懶於zlib,png、jpeg圖形庫而我們的arm-linux-gcc 是不帶這些庫的,它只帶了一些基本的庫,所以這里我們首先就要交叉編譯這些文件,安裝到arm/4.3.2/arm-none-linux-gnueabi/include,arm/4.3.2/arm-none-linux-gnueabi/lib目錄中。庫不一定要最新的,庫的版本太新了,opencv有可能不認識。
首先安裝zlib庫,這個是後面兩個庫的編譯基礎。
xgy@ubuntu:~/tmp$ tar zxvf zlib-1.2.3.tar.gz
在當前目錄下會多一個zlib-1.2.3的目錄。
由於 zlib 庫的configure 腳本不支持交叉編譯選項,只好自己手動臨時把 gcc 修改成指向我們的交叉編譯器 arm-linux-gcc 。執行如下命令:
xgy@ubuntu:~/tmp$ cd /usr/bin
xgy@ubuntu:/usr/bin$ sudo –i //這里得切換到root用戶下才能有許可權做下面的操作。
[sudo] password for xgy: //在這里輸入xgy用戶的密碼
root@ubuntu:~# cd /usr/bin
root@ubuntu:/usr/bin# mv gcc gcc_back
root@ubuntu:/usr/bin# mv ld ld_back
root@ubuntu:/usr/bin# ln -sv/home/xgy/toolchain/arm/4.3.2/bin/arm-linux-gcc ./gcc
root@ubuntu:/usr/bin# ln -sv/home/xgy/toolchain/arm/4.3.2/bin/arm-linux-ld ./ld
下面檢查下是否換過來了
root@ubuntu:/usr/bin#gcc –v
gcc version4.3.2 (Sourcery G++ Lite 2008q3-72) //為輸出的最後一行

root@ubuntu:/usr/bin#ld -v
GNU ld (SourceryG++ Lite 2008q3-72) 2.18.50.20080215
接著切換到原來的目錄~/tmp/zlib-1.2.3執行如下命令
root@ubuntu:/usr/bin#su – xgy //注意這里和用命令 suxgy是有區別的,-表示用xgy的環境
xgy@ubuntu:~$ cdtmp/zlib-1.2.3/
xgy@ubuntu:~/tmp/zlib-1.2.3$./configure --prefix=/home/xgy/toolchain/arm/4.3.2/arm-none-linux-gnueabi/--shared
xgy@ubuntu:~/tmp/zlib-1.2.3$make (如果以前在這個目錄下執行過make ,那要先執行makeclean 然後執行make)
xgy@ubuntu:~/tmp/zlib-1.2.3$make install
然後可以去~/toolchain/arm/4.3.2/arm-none-linux-gnueabi/{include,lib}目錄下是否多了一些文件(可以另外再開一個終端查看,這樣方便點),如下圖:

在這里記著把剛才改過的gcc再改回去,不然後面會出錯!!!

接下來安裝png庫,這個是用來顯示png圖形的。
xgy@ubuntu:~/tmp$tar jxvf libpng-1.2.18.tar.bz2
xgy@ubuntu:~/tmp$cd libpng-1.2.18/
由於libpng不提供有效的configure腳本(可以查看INSTALL文件),所以只好自己動手改Makefile文件了。
xgy@ubuntu:~/tmp/libpng-1.2.18$cp scripts/makefile.linux Makefile
xgy@ubuntu:~/tmp/libpng-1.2.18$vi Makefile

CC=arm-linux-gcc //修改這里
MKDIR_P=mkdir -p

# where "make install" putslibpng12.a, libpng12.so*,
# libpng12/png.h and libpng12/pngconf.h
# Prefix must be a full pathname.
prefix=/home/xgy/toolchain/arm/4.3.2/arm-none-linux-gnueabi
exec_prefix=$(prefix)

# Where the zlib library and include filesare located.
#ZLIBLIB=/usr/local/lib
#ZLIBINC=/usr/local/include
ZLIBLIB=/home/xgy/toolchain/arm/4.3.2/arm/arm-none-linux-gnueabi/lib //修改這里
ZLIBINC=/home/xgy/toolchain/arm/4.3.2/arm/arm-none-linux-gnueabi/include//修改這里
保存退出後執行如下命令:
xgy@ubuntu:~/tmp/libpng-1.2.18$ make
xgy@ubuntu:~/tmp/libpng-1.2.18$ makeinstall
然後可以去~/toolchain/arm/4.3.2/arm-none-linux-gnueabi/{include,lib}目錄下是否多了一些文件(可以另外再開一個終端查看,這樣方便點),如下圖:

如果有錯,檢查下前面的步聚,特別是看zlib有安裝有沒有出錯。

接下來安裝jpeg庫
xgy@ubuntu:~/tmp/libpng-1.2.18$ cd ..
xgy@ubuntu:~/tmp$tar zxvf jpegsrc.v6b.tar.gz
xgy@ubuntu:~/tmp/jpeg-6b$
xgy@ubuntu:~/tmp/jpeg-6b$ ./configure --prefix=/home/xgy/toolchain/arm/4.3.2/arm-none-linux-gnueabi/--host=arm-linux --enable-shared
按此命令進行,然後修 改makefile文件將CC的值改為arm-linux-gcc,一定得改!!
xgy@ubuntu:~/tmp/jpeg-6b$make
安裝前需要在 arm-linux 下建個目錄,不然安裝會出錯
xgy@ubuntu:~/tmp/jpeg-6b$mkdir -pv /home/xgy/toolchain/arm/4.3.2/arm-none-linux-gnueabi/man/man1
mkdir: created directory `/home/xgy/toolchain/arm/4.3.2/arm-none-linux-gnueabi/man/man1
xgy@ubuntu:~/tmp/jpeg-6b$ make install

然後可以去~/toolchain/arm/4.3.2/arm-none-linux-gnueabi/{include, lib}目錄下是否多了一些文件(可以另外再開一個終端查看,這樣方便點),如下圖:

到此,三個庫安裝完畢!

『貳』 Zlib 編譯不過! 請求幫助

看樣子是沒有連接上zlibwapi.lib這個庫。
include zlib.h或者zlibwapi.h之前加上一段
#pragma comment(lib , "zlibwapi.lib的路徑")
或者在工程的propertis->link->input->additional dependencies裡面加上zlibwapi.lib的路徑。

zlib.lib是win32下的。zlibwapi.lib是x64的庫。

『叄』 交叉編譯zlib出錯

$ export CC=mipsel-linux-gcc
$ ./configure --prefix=/opt --shared
$ make CC=mipsel-linux-gcc
$ make install

ps:此處的環境CC=mipsel-linux-gcc 記得換回來!

『肆』 linux用rpm方式安裝zlib庫和GD庫 跟用編譯方式安裝zlib庫和gd庫有什麼區別

rpm方式是你只要安裝了就一直在,並且裝到了內核中,編譯方式安裝是從你編譯開始鏈接的,相當於是鏈接的動態庫,是鏈接到編譯器的

『伍』 如何編譯和使用zlib-Windows

如何編譯Zlib
1、輸入./configure
提示錯誤「please use win32/makefile.gcc instead」
2、cp win32/makefile.gcc Makefile.gcc
3、make -f Makefile.gcc
編譯成功
4、在Makefile.gcc 文件中已經給我們定義了「INCLUDE_PATH」和「INCLUDE_PATH」變數,現在我明定義一下「INCLUDE_PATH」和「INCLUDE_PATH」變數的實際路徑

執行
export INCLUDE_PATH=D:/GNU/MSYS/utils/zlib/include
export LIBRARY_PATH=D:/GNU/MSYS/utils/zlib/lib
export BINARY_PATH=D:/GNU/MSYS/utils/zlib/bin
make install -f Makefile.gcc
cp zlib1.dll D:/GNU/MSYS/utils/zlib/bin

上面的的方法中其實只用到了「INCLUDE_PATH」和「INCLUDE_PATH」變數,只有在SHARED_MODE=1的情況下,Makefile.gcc會自動將zlib1.dll拷貝到D:/GNU/MSYS/utils/zlib/bin目錄

簡單的方法,使用SHARED_MODE=1安裝
1、編譯
make -fwin32/Makefile.gcc
2、設置變數
export INCLUDE_PATH=D:/GNU/MSYS/utils/zlib/include
export LIBRARY_PATH=D:/GNU/MSYS/utils/zlib/lib
export BINARY_PATH=D:/GNU/MSYS/utils/zlib/bin
3、安裝
make install -fwin32/Makefile.gcc SHARED_MODE=1

4、編譯
gcc zlib_test.c -I /zlib/include -L /zlib/lib libz.a -o zlib_test

5、如果將zlib 的lib和include復制到MinGW,則
gcc zlib_test.c -S -lz
注意到,我們用-lz加入了zlib庫
-S 表示生成匯編

6、使用makefile
zlib_test:zlib_test.c
gcc -o zlib_test zlib_test.c -lz

clean:
rm -rf *.o zlib_test

7、使用makefile分布生成
all: zlib_test.exe
@echo "ALL"
zlib_test.exe: zlib_test.o
gcc zlib_test.o -lz -o zlib_test
zlib_test.o: zlib_test.s
gcc -c zlib_test.s -o zlib_test.o
zlib_test.s: zlib_test.i
gcc -S zlib_test.i -o zlib_test.s
zlib_test.i: zlib_test.c
gcc -E zlib_test.c -o zlib_test.i
clean:
rm -rf *.s *.i *.o *.exe zlib_test

在命令行輸入 make all,make zlib_test.exe 或者 make clean

『陸』 編譯安裝openssl時使用參數zlib-dynamic和zlib有什麼區別

./config shared zlib./config shared zlib-dynamic

一個是靜態鏈接,一個是動態庫,windows下為dll,linux為啥來著我也忘了。

這個參數的意思是,openssl應該使用哪個方式來獲取zlib依賴。如果你全局安裝了zlib-devel,那麼選擇zlib-dynamic即可。

如果你選擇zlib,可能需要配置zlib-src,也就是zlib的源碼讓openssl可以將其靜態編譯到自己體內。

『柒』 linux怎麼安裝zlib系統配置

在linux命令行上查詢一下zlib的軟體地址,然後使用瀏覽器打開即可,如下圖所示
大家也可以在網路上進行搜索,不過一定要注意安全哦,避免下載到一些不幹凈的軟體,所以這點需要注意一下
【參考資料後面附官網下載地址】

END
Gcc編譯安裝zlib源碼包並配置使用

使用tar 命令進行解壓出來,然後進入到安裝目錄,如下圖所示
tar zxf zlib-1.2.8.tar.gz
cd zlib-1.2.8

使用./configure --help可以查看編譯的選項,我們這里使用簡單的選項安裝即可
進入安裝文件目錄,然後 使用如下命令進行安裝
./configure --prefix=/data/progam/zlib
make
make install
如下圖所示

再進行配置一下系統的文件,載入剛才編譯安裝的zlib生成的庫文件
vi /etc/ld.so.conf.d/zlib.conf
加入如下內容後保存退出
/data/program/zlib/lib
==============================
也就是添加安裝目錄的文件路徑,庫文件。ldconfig 運行之後就會載入安裝的庫文件了。

『捌』 如何在linux平台上編譯安裝zlib軟體

搜索並下載zlib源碼包

1
在linux命令行上查詢一下zlib的軟體地址,然後使用瀏覽器打開即可,如下圖所示
大家也可以在網路上進行搜索,不過一定要注意安全哦,避免下載到一些不幹凈的軟體,所以這點需要注意一下
【參考資料後面附官網下載地址】

END
Gcc編譯安裝zlib源碼包並配置使用

使用tar 命令進行解壓出來,然後進入到安裝目錄,如下圖所示
tar zxf zlib-1.2.8.tar.gz
cd zlib-1.2.8

使用./configure --help可以查看編譯的選項,我們這里使用簡單的選項安裝即可
進入安裝文件目錄,然後 使用如下命令進行安裝
./configure --prefix=/data/progam/zlib
make
make install
如下圖所示

再進行配置一下系統的文件,載入剛才編譯安裝的zlib生成的庫文件
vi /etc/ld.so.conf.d/zlib.conf
加入如下內容後保存退出
/data/program/zlib/lib
==============================
也就是添加安裝目錄的文件路徑,庫文件。ldconfig 運行之後就會載入安裝的庫文件了。

『玖』 新手求教,如何將從ZLIB官網下下來的源代碼編譯成zlib.dll

詳細步驟如下:
1. 安裝zlib-1.2.3.exe和zlib-1.2.3-src.exe。
2. 打開VS2008,在選項的VC++目錄中,添加庫目錄\GnuWin32\lib。添加包含文件目錄\GnuWin32\include。
3. 新建一個Win32項目,類型選DLL,點上空項目。
4. 將\GnuWin32\src\zlib\1.2.3\zlib-1.2.3\下的所有頭文件和源文件(不包括子目錄)添加到項目文件平中。
5. 將\GnuWin32\src\zlib\1.2.3\zlib-1.2.3\win32下的zlib.def和zlib.rc兩個文件添加到項目中。

『拾』 codeblocks編譯zlib不成功,怎麼解決

你好。
根據你的描述:
codeblocks編譯zlib不成功,刪了zlib1.dll後好了,你可以嘗試!

閱讀全文

與zlib編譯相關的資料

熱點內容
linuxvi下一個 瀏覽:973
安卓手機的應用鎖怎麼解 瀏覽:733
linux增加路徑 瀏覽:845
sql身份證號最後四位加密 瀏覽:533
xp系統表格加密 瀏覽:854
光遇安卓軍大衣什麼時候上線 瀏覽:838
android應用商店圖標 瀏覽:341
java計算圓的面積 瀏覽:643
應用編譯優化recovery 瀏覽:577
域控命令n 瀏覽:258
php導出文件 瀏覽:13
谷歌地圖網頁版無法連接伺服器地址 瀏覽:298
菜鳥工具在線編譯python 瀏覽:858
柵格化命令有何作用 瀏覽:823
為什麼壓縮文件不能解壓 瀏覽:311
足球app哪個軟體好 瀏覽:96
產品經理逼瘋程序員的一天 瀏覽:17
修改svn伺服器ip地址 瀏覽:584
下列關於編譯說法正確的是 瀏覽:246
java馬克思 瀏覽:118