b2c信息网

您现在的位置是:首页 > 明日新闻 > 正文

明日新闻

关于qt中的linux下载源码包的信息

hacker2022-10-23 19:30:28明日新闻112
本文目录一览:1、linux为什么需要qt源码包qt.run2、

本文目录一览:

linux 为什么需要qt源码包 qt.run

去QT官网下载对应的qt安装包在linux下面直接双击(你没有看错,是双击!)安装包开始安装,安装过程和Windows下面基本相同打开QT的IDE开始写代码

安装QT环境遇到这种情况怎么破

Centos6.3自身是带QT4.6.2的,在装系统时可以选择安装,但是没有qvfb工具,所以又自己重新编译了qt-x11的4.5.0版本。

qt各版本版本下载地址(在网上找的很多博文里给的链接都失效了,下面这个链接貌似还比较新,现在可以用):

在ftp资源里找到 qt-x11-opensource-src-4.5.0、qt-embedded-linux-opensource-src-4.5.0这两个源码包并下载(tar.gz或tar.bz2包都有,网速不好的话看哪个小下载哪个)。

下载后将两个源码包分别解压,qt-x11-opensource-src-4.5.0解压一份,qt-embedded-linux- opensource-src-4.5.0解压两份,分别命名为qt-embedded-linux-opensource-src-4.5.0-x86 和 qt-embedded-linux-opensource-src-4.5.0-arm 。

开始编译安装:

一、X11编译:

1.进入qt-x11-opensource-src-4.5.0源码目录。

./configure -no-openssl

在我这里必须加上-no-openssl选项,否则在make过程中,编译到ssl时会报错。出错信息为:

ssl/qsslsocket_openssl_symbols_p.h:264: error: variable or field ‘q_sk_free’ declared void

ssl/qsslsocket_openssl_symbols_p.h:264: error: ‘STACK’ was not declared in this scope

ssl/qsslsocket_openssl_symbols_p.h:264: error: ‘a’ was not declared in this scope

ssl/qsslsocket_openssl_symbols_p.h:265: error: ‘STACK’ was not declared in this scope

ssl/qsslsocket_openssl_symbols_p.h:265: error: ‘a’ was not declared in this scope

……

……

默认安装路径为 /usr/local/Trolltech/Qt-4.5.0。可用--prefix 指定其他安装路径。

2. gmake # linux下一般可直接用make代替gmake。如果要加快编译速度,就加上 -jx ,x表示最大的线程数。

3. gmake install

二、qt-embedded-x86编译:

1.进入qt-embedded-linux-opensource-src-4.5.0-x86源码目录。

./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-x86 -embedded x86 -no-openssl -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb

先后配置了安装目录、嵌入式架构(x86)。同时也跟X11版本一样,配置了 -no-openssl,没有这一项的话,make的过程中会出现跟编译X11时一样的错误。再后面的几项是为了更好的配合qvfb,网上说如果没有这几 项,安装好qt-embedded-x86后想在qvfb上调试程序时,会出现类似下面的错误:

Error opening buffer device /dev/fb0QScreenLinuxFb::connect: No such file or directory

2. gmake

跟x11版一样

3. gamke install

三、qt-embedded-arm:

与前面两个不同,在编译arm版本的qt-embedded前,必须确认已经安装了交叉工具链,编译过程中要生成许多arm架构的库,所以必须有 arm-linux-gcc、arm-linux-g++等工具。我用的是友善提供的arm-linux-gcc-4.5.1版本。

1. 进入qt-embedded-linux-opensource-src-4.5.0-arm源码目录。

./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-arm -embedded arm -no-openssl -qt-libpng

指定了安装路径、嵌入式架构。同时也跟X11版本一样,配置了 -no-openssl,没有这一项的话,make的过程中会出现跟编译X11时一样的错误。

另外,还增加了一项, -qt-libpng,这个选项应该是关于png相关的库,指定用qt自带的png库。如果没有这一项,我这里会出现如下错误:

image/qpnghandler.cpp: In member function 'virtual QVariant QPngHandler::option(QImageIOHandler::ImageOption) const':

image/qpnghandler.cpp:950:35: warning: 'png_info_struct::width' is deprecated (declared at /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:639)

image/qpnghandler.cpp:950:35: warning: 'png_info_struct::width' is deprecated (declared at /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:639)

image/qpnghandler.cpp:950:55: warning: 'png_info_struct::height' is deprecated (declared at /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:640)

image/qpnghandler.cpp:950:55: warning: 'png_info_struct::height' is deprecated (declared at /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include/png.h:640)

make[1]: *** [.obj/release-shared-emb-arm/qpnghandler.o] 错误 1

make[1]: *** 正在等待未完成的任务....

make[1]: Leaving directory `/root/qt4.5.0/qt-embedded-linux-opensource-src-4.5.0-arm/src/gui'

make: *** [sub-gui-make_default-ordered] 错误 2

看起来像是我的交叉工具链跟这个QT版本匹配的不太好,Qt好像不太兼容交叉工具链的png.h头文件中定义的数据结构。加上 -qt-libpng 可解决此问题。

四、qvfb:

这时QT就已安装成功。但是还需要额外安装qvfb。

进入qt-x11-opensource-src-4.5.0源码包目录,然后

cd tools/qvfb

在qvfb源码目录下运行 make 会在qt-x11-opensource-src-4.5.0/bin下生成qvfb,我们将它copy至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin下即可。

end:

到这里,QT的开发环境基本就搭建好了,利用 qt-embedded-x86 和 qvfb 工具可以很方便的调试QT程序,调试好的程序再经 qt-embedded-arm 编译就可在开发板上运行(还有个小问题,我现在编译好的QT程序虽然可以在开发板上运行,但是运行时触摸屏不能用,只能用USB鼠标控制,想支持触摸屏貌 似还需要移植tslib库,等我折腾完了再回来把相关内容补充上)。

linux系统中开发板上Qt移植步骤

一、准备

busybox 1.14.1

qt-embedded-linux-opensource-src-4.5.1

tslib 1.4

gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)

构建一个新的根文件系统目录,路径为

/root/rootfs

二、具体步骤:

1、编译安装busybox

在官网下载最新版。可以参考如下几处要修改的地方:

Busybox Settings --- Build Options --- (arm-linux-)Cross Compiler prefix

Busybox Settings --- Installation Options ---[]Dont't use /usr

Busybox Settings --- Installation Options ---(/root/rootfs) BusyBox installation prefix

Busybox Settings ---Busybox Library Tuning ---[*] Fancy Shell prompts

输入如下命令,编译并安装。

# make;make install

2、编译安装tslib

# ./autogen.sh

# ./configure -prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes

# make;make install

安装目录指明为 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/

主要是为了在编译QTE时,不用指定tslib的头文件和库文件,方便以后程序开发。

注意:在做这一步前,需要做一个目录链接

在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目录下

# ln -s ../../usr/include ./

3、编译安装QTE

1)、最基本的配置

# ./configure -prefix /usr -embedded arm -xplatform qws/linux-arm-g++ -depths 16 -qt-mouse-tslib

-prefix /usr 使用这个配置,编译后的QTE库文件即可放在目标文件系统的/usr/lib下,而不是默认/usr/local/Trolltech/QtEmbedded-4.5.1 这个很深的目录

2)、编译

# make

# cp lib/* /root/rootfs/usr/lib -rd 将QTE库文件拷贝到根文件系统的目录

# cp plugins /root/rootfs/usr -rd 将QTE插件目录拷贝到根文件系统的目录

4、根文件系统的设置

1)、这时/root/rootfs/usr下应该有 bin etc include lib sbin目录

tslib生成的etc目录,包含一个tslib的配置文件 nf,编辑此文件,去掉module_raw input前的注释

# mv etc ../ 移动到rootfs的根目录

2)、进行一次清理操作

#arm-linux-strip lib/*.so

#arm-linux-strip usr/lib/*.so

3)、编辑etc/profile,添加以下内容

export QWS_MOUSE_PROTO=Tslib:/dev/event0

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_TSDEVICE=/dev/event0

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_CONFFILE=/etc/nf

export TSLIB_PLUGINDIR=/usr/lib/ts

最后,通过mkyaffs2image 制作镜像,烧写镜像,启动ts_calibrate校验触屏即可。

如何在linux下安装QT源码包,安装后用图形形式编程

虽然网络上很多人使用 Redhat 或者Fedora 作为上位机操作系统,但是我觉得使用Ubuntu最为方便,因为需要的软件包大部分都可以通过 apt-get 方式来安装,而不必从源代码开始自己编译。

虽然网络上很多人使用 Redhat 或者Fedora 作为上位机操作系统,但是我觉得使用Ubuntu最为方便,因为需要的软件包大部分都可以通过 apt-get 方式来安装,而不必从源代码开始自己编译。要知道,自己编译源代码可不是一件轻松的事,因为在编译过程中经常会出现令人意外而且莫名其妙的错误。

我们使用的操作系统是 Ubuntu 8.04,使用目前最新版本的QT 4.4.0,安装起来即为简单,只要在命令编辑运行以下命令就行:

sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer

注意在这个版本的软件包中,qt4-dev-tools 包含了Qt Assistant及Qt Linguist等工具,因此不需要单独安装这两个工具。其它的,qt4-doc 是帮助文档,包含了Qt中各个类库的详细说明以及丰富的例子程序,可以使用Qt Assistant 工具来打开阅读。qt4-qtconfig 是配置Qt环境的一个对话框,一般默认就行了,很少有必要去更改。qt4-demos 包含很多可以运行起来的可执行文件以及源代码。qt4-designer是用来设计GUI界面的设计器。

为了连接MySQL数据库,需要安装连接MySQL的驱动程序:

sudo apt-get install libqt4-sql-mysql

比起在Windows下安装和配置Qt的MySQL驱动来说,简直太方便了。如果还需要其它的没有默认安装的Qt库,可以在命令行输入 sudo apt-get install libqt4- 然后按tab键自动补全,就会列出所有以libqt4- 开头的软件包,如下图所示:

这些都可以使用一个命令搞定,而不需要自己从源码开始编译。在记不准或不知道名字的情况下,使用tab键列出所有可选的软件包是一个很实用的小技巧。

在我的项目中,还需要画一些数据曲线和统计图表等,而第三方的QWT库提供了这些功能。同样,只需要一个命令即可完成安装:

sudo apt-get install libqwt5-qt4 libqwt5-qt4-dev

这时,打开Qt Designer,就会发现左边的Widget列表里面多了“Qwt Widget”这一组。

最后,关于集成开发环境我觉得QDevelop很不错,它跟Qt Designer结合的很好,而且有提示类成员函数的功能。运行以下命令安装:

sudo apt-get install qdevelop

这样,使用Qdevelop编写代码和编译、调试,使用Qt Designer设计界面,开发效率较高。

发表评论

评论列表

  • 可难绣羽(2022-10-24 02:57:36)回复取消回复

    inux 为什么需要qt源码包 qt.run去QT官网下载对应的qt安装包在linux下面直接双击(你没有看错,是双击!)安装包开始安装,安装过程和Windows下面基本相同打开QT的IDE开始写代

  • 怎忘杞胭(2022-10-24 03:36:58)回复取消回复

    image/qpnghandler.cpp:950:55: warning: 'png_info_struct::height' is deprecated (declared at /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/ar