导航:首页 > 源码编译 > 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编译相关的资料

热点内容
如果appstore被删了怎么办 浏览:286
电脑报2017pdf 浏览:266
思考快与慢pdf下载 浏览:696
ins命令只能插入一条记录吗 浏览:548
spss如何连接本地服务器 浏览:624
植发稀少加密多少钱一根 浏览:692
无法接服务器是什么情况 浏览:212
压缩裤的尺寸如何选择 浏览:471
服务器命令如何下载文件夹下 浏览:550
交叉编译工具的安装位置 浏览:587
linux命令ping本地地址 浏览:214
方舟编译器和超级文件管理 浏览:118
81年的程序员 浏览:32
技能人才占比算法 浏览:55
s8文件夹忘记密码怎么办 浏览:918
大家的日语中级pdf 浏览:438
编译与运行什么区别 浏览:841
死或生5PS3解压 浏览:244
pdf怎么删字 浏览:54
买压缩面膜注意什么 浏览:111