当前位置:首页 » 编程软件 » qt源码编译x11centos

qt源码编译x11centos

发布时间: 2023-03-21 18:53:43

‘壹’ ubuntu怎么编译qt5源代码

以下是编译QT源码的基本步骤:
1.源代码的获取 , 最新的是4.8.2版本。
2.解压代码
输入指令: tar zxvf qt-everywhere-opensource-src-4.8.2.tar.gz,解压出QT源代码。
3.执行./config生成makefile
输入指令: ./config
下面会出现提示,是使用the Commercial Edition还是Open Source Edition。
选择”o”,接着会出现一些提示关于license的信息,选择”yes”。

4.编译QT
等在Ubuntu中顺利下载了缺失的那3个lib后。再次重复第三步的 ./configure指令。
输入指令: make,
然后便可以顺利地生成Makefile文件。
5.安装QT
运行指令: sudo make install,需要几分钟的时间,系统会默认将Qt安装到目录:/usr/local/Trolltech/Qt-4.8.2。
验证安装完成:运行/usr/local/Trolltech/Qt-4.8.2/bin/designer,如果能够正常启动designer,则说明Qt已经安装好了。
6.设置环境变量
7.测试环境变量

‘贰’ 怎样交叉编译qt-x11-opensource-src-4.3.2

可以的,只需要把QtVersion设置好就可以了。
点击Tools->Options->Qt4->Qt Versions.
然后添加你已经编译的Qtembedded目录进去,就可以编译了。
很简单的。
还有,在你的工程中的Release配置中,必须保证Qt Version是Qtembedded,也就是你刚才新建的那个Qt Version
Qt Creator默认是Default Qt version的。
这需要点击左边的Projects来修改。
如果你前面把Default Qt Version改为Qtembedded了,就不用再改了。

另外,交叉编译的可执行文件是不能用QtCreator调试的,因为硬件平台不一样。

‘叁’ ubuntu下qt如何编译.ui文件

登录/注册
linux/Ubuntu下 静态编译Qt程序
转载205 阅读

mb5ff5917b5bbc5
2017-07-28 07:07:00
关注
一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使用的。会提示缺少……库文件之类的错误。这就是动态编译的结果。
但是如果我们想编译一个程序,这个程序在发给别人后,他们可以直接打开,而不需要特别地去先安装Qt库,那就需要采用静态编译了。

在Linux下如何静态编译Qt程序呢?

首先需要先安装静态编译的Qt,也就是静态编译Qt程序首先是需要一个静态编译安装的Qt

1、下载源安装程序,如 qt-x11-opensource-src-4.5.1.tar.gz

2、解压到某一目录

3、cd 进入解压后的目录,命令:

./configure -static -release -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg -nomake demos -nomake examples -qt-sql-sqlite -prefix /usr/local/Trolltech/Qt-4.5.1_static 
 ./configure -static -release -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg -nomake demos -nomake examples -qt-sql-sqlite -prefix /usr/local/Trolltech/Qt-4.5.1_static

参数-static 指的是要采用静态编译Qt的方法

参数-release指的是只编译release版本的库

参数-qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg 是更好确定Qt编译出的程序能在目前不知的系统下运行。

参数-nomake demos -nomake examples 指的是不编译demos和examples

参数-qt-sql-sqlite 如果没有这个参数,configure的时候,可能会提示sqlite 有问题而中止。

参数 -prefix /usr/local/Trolltech/Qt-4.5.1_static 指明静态编译的Qt安装的目录,命名Qt-4.5.1_static是为了区别动态编译安装的Qt,因为如果没有这个参数,安装时会覆盖之前动态编译安装的Qt(如果有的话)。

4、没问题后

make

5、make没问题后再 

sudo make install

6、增加(或改变)环境变量:

在你home目录下你的的名字的目录中,在.profile文件中追加(或改变)如下环境变量:(为Qt设置一些特定的环境变量,这个很重要!.profile文件是隐藏的,可在你的名字目录下,按Ctrl+H显示所有文件查看到)

QTDIR=/usr/local/Trolltech/Qt-4.5.1_static/    
PATH=$QTDIR/bin:$PATH    
MANPATH=$QTDIR/doc/man:$MANPATH    
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH    
export QTDIR PATH MANPATH LD_LIBRARY_PATH   
QTDIR=/usr/local/Trolltech/Qt-4.5.1_static/ 
PATH=$QTDIR/bin:$PATH 
MANPATH=$QTDIR/doc/man:$MANPATH 
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH 
export QTDIR PATH MANPATH LD_LIBRARY_PATH   

7、重启

8、在终端测试一下qmake

成功的话,下来用qmake编译出的Qt程序就是采用静态编译的。这时你会发现,静态编译出来的程序大小变大了相当多。

静态编译与动态编译的区别

动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,也需要附带一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文件就不能运行。、

静态编译就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。所以其优缺点与动态编译的可执行文件正好互补。

‘肆’ QT程序静态编译发布问题

libsm.so不是qt库的。
只首戚是把qt静态编译到你的程序中,qt调用的系统库没有静态编尺芹笑译到你的程序中。
所以,还是需要安陵含装libsm.so相关的类库。

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

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

qt各版本版本下载地址(在网上找的很多博文里给的链接都失效了,下面这个链接貌似还比较新,现在可以用):
http://qt-project.org/downloads
ftp://ftp.qt-project.org/qt/source/
在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,我们将它至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin下即可。

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

‘陆’ 拿到了一份前辈的QT源码,打算重新编译一下,出现如下错误信息,有大神知道什么原因,怎么破解吗

估计你不满足他编译设置条件,错误说/MP应该是一个文件或者目录,但是并不存在

‘柒’ qt5.4 源码编译安装问题

在配置的时候加上 -nodbus,希望采纳,因为我编译的时候也遇到了,加上之后就好了。

‘捌’ Linux系统上用QT编写ARM9继电器控制程序的问题。 想写个QT界面程序到arm板子上,通过界面的按钮来控制继电

以下是单片机实践团为您解答:
1)既然你已经在windows下面搞qt了,转到linux下面就没啥编程问题了,都一样的只是环境搭建有一点点不一样。
2)windows下面直接用的qtsdk for windows的吧,其实是人家直接给你做好的环境,建议自己用everywhelesource自己编译了解整个框架的结构,搞清楚windows下面如何显示的问题就差不多清楚了。
3)啰嗦的说,windows下面你虽然能够编译你的代码看到运行界面,不过我猜你没有深入了解这个框架不是mfc他如何调用windows的显示的,其实在linux下面道理也是一样的。
4)下面说说要怎么弄,主要是环境搭建,用你板子的交叉编译器编译qt源码就是那个everywhelesource了,这个主要要搞清楚那个configure,进入目录运行他生成makefile,记得configure后面要带参数,很多的比如你的交叉编译器。你可以用--help来看这些参数的详细说明。这些你要找点专业的文章来看看,英文好点可以直接上官方网站看的,很详细。
5)编译好这个之后其实你就可以直接把windows下面的代码拿来再次编译就行了,不过有一点你控制继电器的话还要你板子的gpio驱动,也就是控制引脚的,一般板子的驱动都有的。
6)如果你要仿真的话还要编译x11版本的qt,这个主要是要得到那个虚拟显存,用于调试用的,不用直接搞到板子上看效果,这个是x86版本提供的快捷方式,一般都用的,嗯很多的,看一些文章吧,毕竟我只能给你说个大纲盖的。
7)再说个你这就零分,不然给你多说点,看着烦。不明白在hi我吧。

‘玖’ “干货”python-qt5在centos7下编译方法

本指南提供了在CentOS 7 for Python 2.7上编译PyQt5的基本说明

1、安装Qt

2、安装依赖项

3、编译SIP

4、编译PyQt

现在可以从首次运行的Python版本访问PyQt configure.py。

如果这样会产生一个带有单个按钮的新窗口,那么恭喜成功了!

‘拾’ linux下执行qt程序怎么编译运行

qmake -project? 已经有.pro文件了! 直接运行qmake或者qmake snake.pro或qmake -makefile snake.pro.

重新解压,按以下步骤做:
$ qmake
$ make
找到可执行文件(不是.o, 没后缀的), 一般如果snake.pro中没设置TARGET,默认生成的可执行文件为snake,输入
.$ /snake

热点内容
go源码编译2021 发布:2024-05-03 05:02:27 浏览:284
两驱车买哪个配置最好 发布:2024-05-03 04:41:42 浏览:802
如何给服务器上传文件 发布:2024-05-03 04:28:47 浏览:708
android仿微信底部菜单 发布:2024-05-03 04:09:34 浏览:695
LOL脚本识别 发布:2024-05-03 03:53:14 浏览:793
祁东福祥惠民卡初始密码多少 发布:2024-05-03 03:36:02 浏览:247
王者什么东西需要二级密码 发布:2024-05-03 03:26:11 浏览:766
网页界面升级访问 发布:2024-05-03 03:26:06 浏览:210
安卓区怎么更改充电提示音 发布:2024-05-03 03:23:56 浏览:48
遗传算法图像分割 发布:2024-05-03 03:16:27 浏览:801