上面没有问题的话那么我们开始准备编译qtopia目录内的东西啦!
#cd ..
如果你这样做:
cd qtopia/src
./configure -platform linux-arm-g++
make?
?? 那么会出现这样的错误:
cannot find -lqtopia以及uuid.h 找不到的问题
??? 这是因为我们发现qtopia/lib中libuuid.so打头的相关连接文件是一个错误文件连接,因为找不到最终被链接的那个libuuid.so.6(具体名字我忘记了),所以矛盾转换为寻求新的libuuid.so打头系列的文件的问题,这个时候你得开始编译e2fsprogs了,只有通过编译才能形成新的libuuid.so打头系列的文件。
??? 以下是具体编译方法:
当前目录为/yehuo2410/qt_arm
#tar --xzvf? e2fsprogs.1.35.tar.gz
#cd e2fsprogs-1.35??
#./configure -host=arm-linux? -with-cc=arm-linux-gcc? -with-linker=arm-linux-ld -enable-eld-shlibs
-prefix=/usr/local/arm/2.95.3/arm-linux
注意:这里prefix选项很重要,必须指定交叉编译工具2.95.3中的arm-linux,不要改成别的目录或者不指定prefix选项,
#make
#make install lib/uuid? 安装到该目录
??? 有个帖子上是这样写的:
/********************************************************/
#tar x*** e2fsprogs-1.35.tar.gz
#cd e2fsprogs-1.35
#./configure -host=arm-linux -with-cc=arm-linux-gcc -with-linker=arm-linux-ld -enable-elf-shlibs -prefix=/usr/local/arm/2.95.3/arm-linux
#make
#make install lib/uuid/
将e2fsprogs-1.35/lib/目录下uuid的文件夹复制到/armsys2410/qt_arm/qtopia/include下
将e2fsprogs-1.35/lib/中的libuuid.a libuuid.so libuuid..so.1 libuuid.so.1.2复制到/armsys2410/qt_arm/qtopia/lib下
/*********************************************************/
??? 可是在/e2fsprogs-1.35/lib目录里我们想要的四个文件中只有libuuid.a文件存在,而根本就找不到libuuid.so libuuid.so.1(只有一个点号)以及libuuid.so.1.2,这个时候我发现/usr/local/arm/2.95.3/arm-linux/lib中生成了libuuid.so,libuuid.so.1,libuuid.so.1.2,后来我用file命令查看libuuid.so.1.2所属处理器类型是ARM。所以得到了这三个文件,那天下午我的Linux文件系统崩溃了,所以一切都要重来,当我又做到这一步时,编译e2fsprogs以后发现e2fsprogs-1.35/lib目录中和usr/local/arm/2.95.3/arm-linux/lib中都生成了libuuid.so,libuuid.so.1以及libuuid.so.1.2文件,而且都是支持ARM处理器的。
??? 总结得:如果在e2fsprogs-1.35/lib中找不到libuuid.so,libuuid.so.1,libuuid.so.1.2三个文件,那么建议去看一下usr/local/arm/2.95.3/arm-linux/lib目录中是否存在这三个文件,如果不存在那就重新解压e2fsprogs-1.35.tar.gz,重来。
??? 将e2fsprogs-1.35/lib/目录下uuid的文件夹复制到/armsys2410/qt_arm/qtopia/include下
??? 将我们找到的libuuid.a libuuid.so libuuid..so.1 libuuid.so.1.2复制到/yehuo2410/qt_arm/qtopia/lib下
??? 好!问题解决了。
??? 如果你这样做:
cd qtopia/src
./configure -platform linux-arm-g++
make?
??? 那么会出现以下错误:
./usr/local/arm/2.95.3/arm-linux/bin/ld: cannot find -ljpeg
??? 这是因为在qt目录内编译是configure文件默认配置为支持jpeg,然后在最后编译的时候找不到相关的链接库.这个时候我们需要压缩包jpegsrc.v6b.tar.gz,来解决这个问题,按照帖子上的操作:
/**********************************************/
??? 下载jpegsrc.v6b.tar.gz到qtarm目录并解压,进入目录jpeg-6b:
./configure --enable-shared
make? (得到libtools程序)
./configure --enable-shared
??? 修改生成的Makefile文件:
prefix = /qtarm/qt (qte的路径)
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
cp jconfig.doc jconfig.h
mkdir -p /qtarm/qt/man/man1
make
??? 生成的libjpeg.so在.libs下,将libjpeg.so拷贝到/usr/local/arm/2.95.3/bin/arm-linux/lib
/***************************************************************************/
??? 我在jpeg-6b目录内使用ls命令找不到找不到libs目录(我忽略了点号),所以我按照惯例的方法
#locate libjpeg.so 发现/usr/lib目录下有一libjpeg.so打头系列文件,我当时很怀疑那不是我想要的文件,所以我在另外一台PC上再一次按照同样的方法安装Linux,发现刚安好的系统中/usr/lib中已经存在了这些文件,为了进一步证明它们不是我想要的libjpeg.so系列文件,我用file命令查看libjpeg.so.62.00发现是i386处理器的,所以我放弃了使用它们,无意间我在jpeg-6b/目录下使用了以下命令:
#cd .libs?
#ls -l | grep libjpeg*
刚好发现了它们:
libjpeg.so-->libjpeg.so.62
libjpeg.so.62-->libjpeg.so.62.0.0
libjpeg.la-->../libjpeg.la
我用file命令查看这个链接库libjpeg.so.62.0.0发现是支持ARM处理器的,
总结得:我没找到.libs目录在哪里,错误的以为是/lib和/usr/lib
还有就是上述帖子最后一步:
生成的libjpeg.so在.libs下,将libjpeg.so拷贝到/usr/local/arm/2.95.3/bin/arm-linux/lib下.
应该是:
将/jpeg-6b/.libs目录下的libjpeg.la,libjpeg.so ,libjpeg.so.62 以及libjpeg.so.62.0.0拷贝到目录
/usr/local/arm/2.95.3/arm-linux/lib? (没有bin)
好!这个问题解决了,再来:
cd qtopia/src
./configure -platform linux-arm-g++
make?
#cd ..
如果你这样做:
cd qtopia/src
./configure -platform linux-arm-g++
make?
?? 那么会出现这样的错误:
cannot find -lqtopia以及uuid.h 找不到的问题
??? 这是因为我们发现qtopia/lib中libuuid.so打头的相关连接文件是一个错误文件连接,因为找不到最终被链接的那个libuuid.so.6(具体名字我忘记了),所以矛盾转换为寻求新的libuuid.so打头系列的文件的问题,这个时候你得开始编译e2fsprogs了,只有通过编译才能形成新的libuuid.so打头系列的文件。
??? 以下是具体编译方法:
当前目录为/yehuo2410/qt_arm
#tar --xzvf? e2fsprogs.1.35.tar.gz
#cd e2fsprogs-1.35??
#./configure -host=arm-linux? -with-cc=arm-linux-gcc? -with-linker=arm-linux-ld -enable-eld-shlibs
-prefix=/usr/local/arm/2.95.3/arm-linux
注意:这里prefix选项很重要,必须指定交叉编译工具2.95.3中的arm-linux,不要改成别的目录或者不指定prefix选项,
#make
#make install lib/uuid? 安装到该目录
??? 有个帖子上是这样写的:
/********************************************************/
#tar x*** e2fsprogs-1.35.tar.gz
#cd e2fsprogs-1.35
#./configure -host=arm-linux -with-cc=arm-linux-gcc -with-linker=arm-linux-ld -enable-elf-shlibs -prefix=/usr/local/arm/2.95.3/arm-linux
#make
#make install lib/uuid/
将e2fsprogs-1.35/lib/目录下uuid的文件夹复制到/armsys2410/qt_arm/qtopia/include下
将e2fsprogs-1.35/lib/中的libuuid.a libuuid.so libuuid..so.1 libuuid.so.1.2复制到/armsys2410/qt_arm/qtopia/lib下
/*********************************************************/
??? 可是在/e2fsprogs-1.35/lib目录里我们想要的四个文件中只有libuuid.a文件存在,而根本就找不到libuuid.so libuuid.so.1(只有一个点号)以及libuuid.so.1.2,这个时候我发现/usr/local/arm/2.95.3/arm-linux/lib中生成了libuuid.so,libuuid.so.1,libuuid.so.1.2,后来我用file命令查看libuuid.so.1.2所属处理器类型是ARM。所以得到了这三个文件,那天下午我的Linux文件系统崩溃了,所以一切都要重来,当我又做到这一步时,编译e2fsprogs以后发现e2fsprogs-1.35/lib目录中和usr/local/arm/2.95.3/arm-linux/lib中都生成了libuuid.so,libuuid.so.1以及libuuid.so.1.2文件,而且都是支持ARM处理器的。
??? 总结得:如果在e2fsprogs-1.35/lib中找不到libuuid.so,libuuid.so.1,libuuid.so.1.2三个文件,那么建议去看一下usr/local/arm/2.95.3/arm-linux/lib目录中是否存在这三个文件,如果不存在那就重新解压e2fsprogs-1.35.tar.gz,重来。
??? 将e2fsprogs-1.35/lib/目录下uuid的文件夹复制到/armsys2410/qt_arm/qtopia/include下
??? 将我们找到的libuuid.a libuuid.so libuuid..so.1 libuuid.so.1.2复制到/yehuo2410/qt_arm/qtopia/lib下
??? 好!问题解决了。
??? 如果你这样做:
cd qtopia/src
./configure -platform linux-arm-g++
make?
??? 那么会出现以下错误:
./usr/local/arm/2.95.3/arm-linux/bin/ld: cannot find -ljpeg
??? 这是因为在qt目录内编译是configure文件默认配置为支持jpeg,然后在最后编译的时候找不到相关的链接库.这个时候我们需要压缩包jpegsrc.v6b.tar.gz,来解决这个问题,按照帖子上的操作:
/**********************************************/
??? 下载jpegsrc.v6b.tar.gz到qtarm目录并解压,进入目录jpeg-6b:
./configure --enable-shared
make? (得到libtools程序)
./configure --enable-shared
??? 修改生成的Makefile文件:
prefix = /qtarm/qt (qte的路径)
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
cp jconfig.doc jconfig.h
mkdir -p /qtarm/qt/man/man1
make
??? 生成的libjpeg.so在.libs下,将libjpeg.so拷贝到/usr/local/arm/2.95.3/bin/arm-linux/lib
/***************************************************************************/
??? 我在jpeg-6b目录内使用ls命令找不到找不到libs目录(我忽略了点号),所以我按照惯例的方法
#locate libjpeg.so 发现/usr/lib目录下有一libjpeg.so打头系列文件,我当时很怀疑那不是我想要的文件,所以我在另外一台PC上再一次按照同样的方法安装Linux,发现刚安好的系统中/usr/lib中已经存在了这些文件,为了进一步证明它们不是我想要的libjpeg.so系列文件,我用file命令查看libjpeg.so.62.00发现是i386处理器的,所以我放弃了使用它们,无意间我在jpeg-6b/目录下使用了以下命令:
#cd .libs?
#ls -l | grep libjpeg*
刚好发现了它们:
libjpeg.so-->libjpeg.so.62
libjpeg.so.62-->libjpeg.so.62.0.0
libjpeg.la-->../libjpeg.la
我用file命令查看这个链接库libjpeg.so.62.0.0发现是支持ARM处理器的,
总结得:我没找到.libs目录在哪里,错误的以为是/lib和/usr/lib
还有就是上述帖子最后一步:
生成的libjpeg.so在.libs下,将libjpeg.so拷贝到/usr/local/arm/2.95.3/bin/arm-linux/lib下.
应该是:
将/jpeg-6b/.libs目录下的libjpeg.la,libjpeg.so ,libjpeg.so.62 以及libjpeg.so.62.0.0拷贝到目录
/usr/local/arm/2.95.3/arm-linux/lib? (没有bin)
好!这个问题解决了,再来:
cd qtopia/src
./configure -platform linux-arm-g++
make?
评论