交叉编译练习

文章详细介绍了如何进行Linux下的交叉编译,包括tar文件的压缩与解压,处理xz结尾的文件,以及libpng和zlib库的安装和编译。在遇到找不到png.h和zlib.h头文件的问题时,通过安装相应的开发库解决。接着,文章演示了zlib和libpng的交叉编译步骤,以及最终的应用程序编译过程。
摘要由CSDN通过智能技术生成

1、复习一下压缩和解压操作

	tar类型
		-c: 建立压缩档案
		-x:解压
		-t:查看内容
		-r:向压缩归档文件末尾追加文件
		-u:更新原压缩包中的文件
		v: 显示操作过程
		z: --gzip 调用gzip功能
		j: --bzip2 调用bzip2压缩
		-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
		压缩:
		#紧打包不压缩:tar -cvf text.tar test
		#打包后,以gzip压缩,以tar.gz或者tgz结尾来表示gzip:tar -zcvf test.tgz text
		#将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
		tar –cjf jpg.tar.bz2 *.jpg 
		
		解压:
		#这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
		tar -rf all.tar *.gif 
		#这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
		tar -uf all.tar logo.gif 
		#这条命令是列出all.tar包中所有文件,-t是列出文件的意思
		tar -tf all.tar 

解压xz结尾,xz -d …tar.xz 再用 tar -xf

2、首先准备东西

libpng、zlib、交叉工具链
问题:fatal error: png.h: No such file or directory和fatal error: zlib.h: No such file or directory
解决方法:sudo apt-get install libpng-dev和sudo apt-get install zlib1g-dev
zlib编译:zlib-1.2.7.tar.gz
	1、配置CC=绝对路径+交叉编译工具名称
	2、配置。/configue --prefix=输出路径
	3、make and make install
libpng编译:libpng-1.5.13.tar.xz
	1、解压:tar -xf libpng-1.5.13.tar.xz
	2、配置STAGING_DIR环境变量。
		export STAGING_DIR="/opt/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin"
	3、指定交叉编译链。
		export CC="绝对路径+交叉编译工具名称"
	4、指定交叉编译参数。
		./configure --prefix=输出路径 --host=mipsel-linux CFLAGS="-Izlib的头文件路径" LDFLAGS="-Lzlib的头文件路径"
	
	make and make install

3、应用编译

	1、CC和LD配置交叉编译工具链
	2、添加头文件CFLAGS,库文件LDFLAGS
	3、最后动态库需要打包,应用可执行文件
	4、打包用tar -cvf(打包不压缩)lib export LD_LIBRARY_PATH='/tmp/mycross/install/lib'
成功页面

用QQ截图是标准的png
/tmp # ./png2bmp 
png2bmp, a PNG-to-BMP converter - version 1.62 (Sep 4, 2005)
   Copyright (C) 1999-2005 MIYASAKA Masaru
   Compiled with libpng 1.5.13 and zlib 1.2.7.

Usage: ./png2bmp [-switches] inputfile(s) ...
   or: ... | ./png2bmp [-switches] | ...

List of input files may use wildcards (* and ?)
Output filename is same as input filename, but extension .bmp

Switches (case-insensitive) :
   -A       Preserve alpha channel (save in 32bit ARGB BMP format)
   -B       Preserve alpha channel (save in 32bit Bitfield BMP format)
   -R       Convert transparent color to alpha channel (use with -A or -B)
   -O name  Specify name for output file
   -D dir   Output files into dir
   -E       Delete input files after successful conversion
   -T       Set the timestamp of input file on output file
   -Q       Quiet mode
   -L       Log errors to ./p2berror.log file
   -X       Disable conversion through standard input/output
/tmp # 

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值