看了一个文章:

=====================================
谢论坛内各位的帮助,我的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是个什么东西。

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

官方下载地址

Libtool (1.5): 
ftp://ftp.gnu.org/gnu/libtool/

6.21.1. 安装 Libtool

为编译 Libtool 做准备:

<kbd>./configure --prefix=/usr</kbd>

编译软件包:

<kbd>make</kbd>

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

安装软件包:

<kbd>make install

</kbd>

Libtool的内容

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

安装下列程序 : libtool 和 libtoolize

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

简短说明

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

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

libltdl 隐藏 dlopening 库的复杂细节。

Libtool 安装依赖关系

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

=========================================是在jpeg的的makefile里改,但是没有LIBOOL_OPT 这个选项==

又找资料,看到一个人写得,是libtool版本低,我又下了一个,刚才是1.5的,现在是2.2,把编译生成的libtool生成后,又按他写得复制两个文件,再编译,通过:

==============================================
错误分析:由于libtool版本过低导致的,重新下载新版本的libtool以默认方式安装,执行以下命令:

./configure

make

make install

然后进入jpeg-6b的源码目录,然后执行以下步骤,切记!

cp /usr/share/libtool/config.sub .

cp /usr/share/libtool/config.guess .

./configure --enable-shared --enable-static

make

=======================高兴的太早了,忘了修改makefile,太失败了====================


目的是生成板子能用得库,而这是pc能用的库!!

失败

重新删除jpeg所在文件夹,又解压缩进,把build文件夹建起来,下设

四个文件夹,/usr/include拷过来,configure后修改makefile 改成arm-linux-gcc,要拷libtool

时出了个提示,说是否要复盖,没让复盖。拷cp /usr/share/libtool/config.sub .

cp /usr/share/libtool/config.guess .也说让复盖吗,复盖了。之后编译通过。

成功。

在build文件夹下/lib下有了 

[root@localhost lib]# ls -la

×ÜÓÃÁ¿ 160

drwxr-xr-x    2 root     root         4096  3ÔÂ 20 15:11 .

drwxr-xr-x    7 root     root         4096  3ÔÂ 20 15:06 ..

-rwxr-xr-x    1 root     root          495  3ÔÂ 20 15:11 libjpeg.la

lrwxrwxrwx    1 root     root           17  3ÔÂ 20 15:11 libjpeg.so -> libjpeg.so.62.0.0

lrwxrwxrwx    1 root     root           17  3ÔÂ 20 15:11 libjpeg.so.62 -> libjpeg.so.62.0.0

-rwxr-xr-x    1 root     root       144955  3ÔÂ 20 15:11 libjpeg.so.62.0.0
有两个链接文件。!!把它们都拷过去。

15:24现在。早晨8点多到现在历时8个小时,终于弄好了。这只是一小步,下一步要编译支持jpeg的qt/e!!!

【Linux开发】为qt-embedded添加jpeg库的交叉编译方法for arm的更多相关文章

  1. Qt中添加静态库.lb,.a和动态库.dll,.so,头文件和.cpp文件

    添加步骤 1.-Qt Creator中,"项目"------"添加库"2.把静态库和动态库文件放到项目文件夹中3.在.pro文件中会添加如下代码: - 添加动态 ...

  2. NDK 开发实例二(添加 Eigen库)

    上一篇,我已经阐述了如何创建一个简单的NDK实例: NDK 开发实例一(Android.mk环境配置下) 在上一篇的基础上,我们来添加Eigen库,然后做一个简单实例. Eigen是一个高层次的C + ...

  3. QT中添加 动态库(.so) 和 静态库 (.a) 的方法

    在QT 的Makefile文件中: 1 添加动态库,如lipcap.so 则,在LIBS一行中添加“-L/usr/local/lib -lpcap”,依据自己的情况修改libpcap.so的路径 2 ...

  4. 【Qt开发】【Linux开发】Qt程序在嵌入式设备(arm) 上运行,鼠标擦除界面的解决方案

    笔者最近想在arm开发板上,开发一个应用程序,经过网上查询发现qt作为跨平台开发软件很不错,于是便选择了qt开发,笔者的qt版本是4.8.6的.由于arm的主频太低,在arm上进行开发编译,效率会大大 ...

  5. Qt中添加OpenCV库

    配置在Qt中的OpenCV,看了很多“教程”,最终成功.记一下过程. 本机配置: window7 32位系统: qt-opensource-windows-x86-mingw492-5.5.1: Op ...

  6. windows系统中给qt工程添加第三方库

    · TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle CONFIG -= qt SOURCES += main.cpp LIBS ...

  7. QT Creator 添加Lib库

    LIBS += -LD:/Path/ -lTest1.lib -lTest2.lib 解析:在路径D:/Path/ 下 添加Test1.lib Test2.lib库 -L 和小写'-l"没有 ...

  8. 【Qt开发】【Linux开发】QT设置环境变量QWS_DISPLAY

    QT设置环境变量QWS_DISPLAY 当应用程序./myQtApp -qws启动时,会去检测QWS_DISPLAY这个环境变量, 判断界面最终显示在哪个framebuffer中, 如果是虚拟的fra ...

  9. 【Linux开发】【Qt开发】配置tslibs触摸屏库环境设置调试对应的设备挂载点

    [Linux开发][Qt开发]配置tslibs触摸屏库环境设置调试对应的设备挂载点 标签(空格分隔): [Linux开发] [Qt开发] 比如: cat /dev/input/mice cat /de ...

随机推荐

  1. [易学易懂系列|rustlang语言|零基础|快速入门|(11)|Structs结构体]

    [易学易懂系列|rustlang语言|零基础|快速入门|(11)] 有意思的基础知识 Structs 我们今天来看看数据结构:structs. 简单来说,structs,就是用来封装相关数据的一种数据 ...

  2. DECLARE_GLOBAL_DATA_PTR

    DECLARE_GLOBAL_DATA_PTR在arch/arm/include/asm/global_data.h中定义 #include <asm-generic/global_data.h ...

  3. git 分支 版本回退

    本地回退: git reset --hard HEAD~ 回退后推送到远程: git push --force .

  4. SpringMVC @ModelAttribute详解

    被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用. 我们编写控制器代码时,会将保存方法独立 ...

  5. 解决:java compiler level does not match the version of the installed java project facet错误

    java compiler level does not match the version of the installed java project facet错误的解决 因工作的关系,Eclip ...

  6. TeXstudio设置中文和编码问题

    1 菜单中文显示 2 针对内容中文乱码问题 永久 临时

  7. 一个IP,一个linux服务器,两个项目,两个域名;如何将两个域名配置到同一个IP的两个项目中。

    一.现有资源: 1.阿里云centOS6.5服务器: 2.安装tomcat8.0+JDK: 3.两个不同maven项目的war包,项目名分别为cloud.am: 4.两个域名http://www.lu ...

  8. cpu、gpu 安装框架pytorch,cntk,theano及测试

    一,cpu 下安装 tensorflow conda env list source activate tensorflow 直接安装相应版本 python import tensorflow as ...

  9. 解决"'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件"的问题

    大家好,我是Connor,今天我为大家带来解决CMD命令无法直接运行 '点子' 进行安装库的问题. 今天本来想安装库来着,但是苦于pycharm的设置里不知道出了什么原因,无奈只能使用PIP功能来安装 ...

  10. QT 信号槽 异步事件驱动 单线程 多并发

    利用好Qt 模块的异步信号槽,单线程同样可是实现很强悍的的并发能力.应付正常的功能是足够的. 需要注意的是:该模式本质上为 单线程 事件驱动异步模式,所以需要做的事优化你的业务代码构架以应付性能与并发 ...