linux qt jpeg,【Linux开发】为qt-embedded添加jpeg库的交叉编译方法for arm

看了一个文章:

=====================================

谢论坛内各位的帮助,我的qt/e2.3.10和qtopia2.1.1终于全部编译通过.

下面是jpeg和uuid库的编译方法.是我自己总结的,希望对大家有点儿用.

为qt-embedded添加jpeg库的交叉编译方法for arm

下载jpegsrc.v6b.tar.gz

解压

tar -xzf jpegsrc.v6b.tar.gz

cd jpeg-6b

[root@SJTU-LIUJIAN jpeg-6b]# ./configure --enable-shared

[root@SJTU-LIUJIAN jpeg-6b]# make

修改生成的Makefile文件:

prefix = qt-embeddedd的文件夹路径(eg: /home/qt-2.3.10)

CC= /usr/local/arm/2.95.3/bin/arm-linux-gcc

AR= /usr/local/arm/2.95.3/bin/arm-linux-ar rc

AR2= /usr/local/arm/2.95.3/bin/arm-linux-ranlib

保存

在你的qt-embedded中建立man/man1文件家,否则安装jpeg库时会出错

[root@SJTU-LIUJIAN jpeg-6b]#mkdir -p qt-2.3.10/man/man1

最后:

[root@SJTU-LIUJIAN jpeg-6b]# make install

就可以给qt-embedded添加好for arm的libjpeg库.

把生成的库文件向下面的目录中也拷贝一份:

/usr/local/arm/2.95.3/arm-linux/lib

通过命令file libjpeg.so查看:

libjpeg.so: ELF 32-bit LSB shared object, ARM, version 1 (ARM), not stripped

这样的话就说明生成的库是for arm的,类似方法可以勇于生成libuuid.so库.

=========================================================

出错::

然后看一文章:http://q.163.com/10301/blog/hujw0710/8797282200791854540158/#8797282200791854540158

===

1. 首先要 在你安装的目录下建立4个文件目录 :/bin    /include  /lib /man/man1.如果你 没有建立这4个文件目录的话.在make install的时候你会遇到下面的 问题:

/usr/bin/install -c -m 644 ./cjpeg.1 /home/zz/jpeg-6b/jpeg/man/man1/cjpeg.1

/usr/bin/install: 无法创建一般文件‘/home/zz/jpeg-6b/jpeg/man/man1/cjpeg.1’: 没有那个文件或目录

make: *** [install] Error 1

2. 关于配置安装的 几点意见:

#  export CC=arm-linux-gcc

# ./configure --host=arm-unknown-linux --prefix=/home/zz/jpeg-6b/jpeg   --enable-shared  --enable-static

分别对动态链接库和静态链接库的支持

=====

建了四个文件夹在prefix下。4个文件目录 :/bin    /include  /lib /man/man1

在configure后修改Makefile还是出错

You must prepare a system-dependent jconfig.h file

====================这个文件与系统有关,可能!

copy        /usr/include 文件到/include   还是报错,我就把这个文件copy到与Makefile同级目录中。再make没这个错了,又出了新错误:

========================================

[root@localhost jpeg-6b]# make

./libtool --mode=compile arm-linux-gcc -O2  -I. -c ./jcapimin.c

make: ./libtool: Command not found

make: *** [jcapimin.lo] Error 127

========================================

检查环境变量,看了一下,PATH里没有arm-linux-gcc所在的bin,加入看一下结果。还是报错如上。

搜索一下,看这个libtool是个什么东西。

=================================

6.21.1. 安装 Libtool

为编译 Libtool 做准备:

./configure --prefix=/usr

编译软件包:

make

要测试结果,请运行:make check。

安装软件包:

make install

GNU libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中。

安装下列程序 : libtool 和 libtoolize

安装下列库文件 : libltdl.[a,so].

libtool 提供通用的库编译支持。

libtoolize 提供了一种标准方式来将libtool支持加入到一个软件包。

libltdl 隐藏 dlopening 库的复杂细节。

Libtool 依赖于: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed.

===================================

不会再安这个东西吧!天啊

http://ftp.gnu.org/gnu/libtool/ 下载,

安装,在安装目录下

===

[root@localhost libtool-1.5.12]# ./libtool

*** Warning: inferring the mode of operation is deprecated.

*** Future versions of Libtool will require --mode=MODE be specified.

libtool: warning: cannot infer operation mode without MODE-ARGS

libtool: you must specify a MODE

Try `libtool --help' for more information.

看来还能用,但是

在jpeg-6b下又不找到命令,可能是环境变量的问题:

把这个目录放入PATH中看一下export PATH=$PWD:$PATH

还是错误

=====

[root@localhost jpeg-6b]# make

./libtool --mode=compile arm-linux-gcc -O2  -I. -c ./jcapimin.c

make: ./libtool: Command not found

make: *** [jcapimin.lo] Error 127

[root@localhost jpeg-6b]# ./libtool

-bash: ./libtool: 没有这个文件或目录。只能在复制来了,看一下。

==================================jpeg目录==

[root@localhost jpeg-6b]# cp ../libtool-1.5.12/libtool .

[root@localhost jpeg-6b]# ./libtool

*** Warning: inferring the mode of operation is deprecated.

*** Future versions of Libtool will require --mode=MODE be specified.

libtool: warning: cannot infer operation mode without MODE-ARGS

libtool: you must specify a MODE

Try `libtool --help' for more information.

=======================

再make看一下。

[root@localhost jpeg-6b]# make

./libtool --mode=compile arm-linux-gcc -O2  -I. -c ./jcapimin.c

libtool: compile: unable to infer tagged configuration

libtool: compile: specify a tag with `--tag'

make: *** [jcapimin.lo] Error 1

=====================================搜到一文章说======

有的机器上会出现下列错误:

libtool: compile: unable to infer tagged configuration

libtool: compile: specify a tag with `--tag'

这时检查一下 libtool 里的 CC 变量是否设置为 arm-linux-gcc ,如果不是,可以手工改过来,或者设置环境变量lt_compiler=arm-linux-gcc ,重新配置一下。

===================================

这是什么啊,libtool里的环境变量在哪??????

=========================

Building ccdv

Compiling cpufreq.c: [ERROR]

/usr/bin/libtool --silent --mode=compile gcc -DVERSION="002" -DPACKAGE="cpufr

equtils" -DPACKAGE_BUGREPORT="linux@brodo.de" -D_GNU_SOURCE -pipe -DINTERFACE

_PROC -DINTERFACE_SYSFS -Os -fomit-frame-pointer -O3 -pipe -mmmx -msse -msse2

-msse3 -march=pentium4 -Wall -Wchar-subscripts -Wpointer-arith -Wsign-compar

e -Wno-pointer-sign -Wdeclaration-after-statement -Wshadow -I/usr/lib/gcc/i68

6-pc-linux-gnu/4.2.0/include -o lib/cpufreq.lo -c lib/cpufreq.c

libtool: compile: unable to infer tagged configuration

libtool: compile: specify a tag with `--tag'

make: *** [lib/cpufreq.lo] Error 1

This is the libtool require a --tag=CC setting

so change the Makefile and add the options for libtool from

LIBTOOL_OPT=--silent

to

LIBTOOL_OPT=--silent --tag=CC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程详细、全面地介绍了 Qt 开发中的各个技术细节,并且额外赠送在嵌入式端编写Qt程序的技巧。整个课程涵盖知识点非常多,知识模块囊括 Qt-Core 组件、QWidgets、多媒体、网络、绘图、数据,超过200个 C++ 类的分析和使用,学完之后将拥有 Qt 图形界面开发的非常坚实的功底。 每个知识点不仅仅会通过视频讲解清楚,并且会配以精心安排的实验和作业,用来保证学习过程中切实掌握核心技术和概念,通过实验来巩固,通过实验来检验,实验与作业的目的是发现问题,发现技术盲点,通过答疑和沟通夯实技术技能。注意:本套视频教程来源于线下的实体班级,因此视频中有少量场景对话和学生问答,对此比较介意的亲们谨慎购买。注意:本套视频教程包含大量课堂源码,包含对应每个知识点的精心编排的作业。由于CSDN官方规定在课程介绍中不能出现作者的联系方式,因此在这里无法直接给出QQ答疑号,视频中的源码、资料和作业文档链接统一在购买后从CSDN平台跟我沟通,我会及时回复跟进。注意:本套视频教程包含全套10套作业题,覆盖所有视频知识点,循序渐进,各个击破,作业总纲如下:下面是部分作业题目展示,每道题都有知识点说明,是检验学习效果的一大利器:(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)(部分作业展示,为了防止盗图盗题对题干做了模糊处理)…… ……

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值