编译qtdoc
Ⅰ 如何让QT编译器显示光标
1 PC版本
在终端中输入:sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer qt4-qmlviewer
◆qt4-dev-tools 中包括了Qt Assistant,Qt Linguist,Qt Creator
◆qt4-doc 这个是帮助文档
◆qt4-qtconfig Qt的配置工具,这个装好默认好
◆qt4-demos 官方的一些Demo
◆qt4-designer 可视化窗体设置工具
◆qt4-qmlviewer 和qtcreator相关
安装后,没有安装Qt Creator,在Ubuntu 图形桌面上点击左侧的Ubuntu Software Center,搜索Qt ,选择Qt Creator
完成后,在terminal命令行执行命令 qtcreator启动Qt Creator了
注:如果需要编译特定版本的,如4.8.5,则:
(1) 安装一些依赖包
sudo apt-get install libX11-dev libXext-dev libXtst-dev
(2) 下载Qt源码包 qt-everywhere-opensource-src-4.8.5.tar.gz,解压后进入目录
用命令 sudo ./configure -prefix /usr/local/Trolltech/Qt-4.8.5;sudo make;sudo make install即可
2 ARM版本
注:以下所使用的交叉编译工具为arm-none-linux-gnueabi 如果使用arm-linux 做相应的修改即可
(1)下载Qt源码包 qt-everywhere-opensource-src-4.8.5.tar.gz;
(2) 解压后进入该文件夹,执行.
./configure -opensource -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -no-webkit -qt-libtiff -qt-libmng -qt-libjpeg -qt-libpng -no-qt3support -nomake demos -nomake docs -nomake examples -little-endian -host-little-endian -fast -lrt
(3) 执行make,及make install命令,一般时间比较长
(4) 完成后修改mkspecs文件的权限,供qt creator使用: sudo chmod 775 mkspecs -R
(5) 配置qt creator:工具->选项->Qt4 找到“手动设置”增加一个,qmake路径填第二步中的安装目录下的qmake路径,”usr/local/Trolltech/QtEmbedded-4.8.5-arm/bin/qmake“
(6)配置完成后,打开项目后点左侧“项目”,选择刚才配置的Qt版本即可编译生成arm版程序了
3 移植到ARM
(1)需要将usr/local/Trolltech/QtEmbedded-4.8.5-arm/lib移植到ARM板上相同的位置,将plugins里的.so也移入..../QtEmbedded-4.8.5-arm/lib
(2) 对(1)中的lib/下的.so做链接
ln -s libQtDeclarative.so.4.8.5 libQtDeclarative.so
ln -s libQtDeclarative.so.4.8.5 libQtDeclarative.so.4
ln -s libQtDeclarative.so.4.8.5 libQtDeclarative.so.4.8
ln -s libQtGui.so.4.8.5 libQtGui.so
ln -s libQtGui.so.4.8.5 libQtGui.so.4
ln -s libQtGui.so.4.8.5 libQtGui.so.4.8
......
注:(1)(2) 也可以用压缩打包整个lib,拷贝过去来实现
(3)vi ~/.bashrc 文件,加入
QTDIR=usr/local/Trolltech/QtEmbedded-4.8.5-arm
export QTDIR
PATH=$QTDIR/lib:$PATH
export PATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
4 一些常见错误
(1) “QMAKESPEC has not been set”,解决方案:sudo gedit ~/.bashrc ,添加内容:export QMAKESPEC=usr/local/Trolltech/QtEmbedded-4.8.5-arm/mkspecs/qws/linux-arm-gnueabi-g++
(2) 安装了多种版本的QT,如果想默认使用QtEmbeddedb版本,可以在上述文件中加入:export PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/bin:$PATH
(3) 配置完成后,可使用qmake -project;qmake;make进行工程编译
(4) arm开发板的终端打不开,出现"grantpt failed:..."问题,可以输入:mount -o remount,gid=5,mode=620 /dev/pts 回车
(5) Qtcreator配置出现,没有编译链,则可加入GCCE编译链,目标位置就是linux-none-arm-guneabi-g++所在位置
(6) 出现qmlviewer 没有安装的问题,可从/usr/bin里将qml开头的三个可执行文件拷到usr/local/Trolltech/QtEmbedded-4.8.5-arm/bin下
(7) make 出现arm-none-linux-gnueabi-g++命令未找到,如果确定环境变量已经添加,则检查文件所属账号是不是你现在账户;环境变量如果一直不对,可以关掉终端,新开一个,重新设置
(8) 如果开发板运行程序的时候出现 cannot mix incompatible Qt library with this library,查找资料,大家都说最可行性的解决方案是卸干净,重新编译,自己花了好长时间重新编译后,发现还是一样。然后用ldd <filename> 查看了运行文件依赖的库,发现程序有部分链接到了开发板上的Qt库。做了Qt动态库的全部ln(具体见第3部分)
//////////////////////////////////////////////////////////////////////////////////////////////////////由于项目需要,需要加入触屏,编译过程中发现不同与之前的新的问题,记录如下
一 触屏库tslib的编译
1 下载相应的工具
do apt-get install automake
sudo apt-get install autogen
sudo apt-get install autoconf
sudo apt-get install libtool
2 很重要的一步,设置 CC和CXX
export CC=.... ,export CXX=...,一般CC=arm-linux-gcc ,CXX=arm-linux-g++,我的交叉编译环境是arm-none-linux-gnueabi-gcc,arm-none-linux-gnueabi-g++,输入命令 export CC=arm-none-linux-gnueabi-gcc export CXX=arm-none-linux-gnueabi-g++
3 编译
cd tslib
./autogen.shecho "ac_cv_func_malloc_0_nonnull=yes" > arm-none-linux-gnueabi.cache #(这样做到目的是避免出现undefined reference to rpl_malloc错误)./configure --host=arm-none-linux-gnueabi CC=<你的cc编译器所在路径> CXX=<你的++编译器所在路径> --cache-file=arm-none-linux-gnueabi.cache -prefix=/usr/local/tslibmakemake install
4 检查,可进入/usr/local/tslib/bin 里,file ts_test(或其他文件) 如果显示ARM,表明编译正确,如果显示80386表明你用的不是交叉编译器,而是系统的gcc。注:因为版本不一致,导致编译QT时一直出现 fail to find tslib function...,加入-verbose选项,打印出/opt/../ld:cannot find -lts(tslib和qt编译器版本不对应造成)。
二 编译QTe 4.8.5
1 编译指令需要改为./configure -opensource -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -no-webkit -qt-libtiff -qt-libmng -qt-libjpeg -qt-libpng -no-qt3support -nomake demos -nomake docs -nomake examples -little-endian -host-little-endian -no-xcursor -no-mouse-linuxtp -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib -fast -lrt
不需要鼠标的话就加上绿色的文字,并且修改./src/gui/embedded/qwscursor_qws.h,在文件头部加上#define QT_NO_QWS_CURSOR
2 编译器最好在qws/linux-arm-gnueabi-g++/qmake.conf中指定完全的路径,否则可能出现一些奇怪的错误。
3 qmake.conf中记得加入-lts 在g++ gcc后面
三 移植到开发板
如果开发板中没有tslib库,则需要进行移植1 将tslib库拷到开发板 /usr/local/tslib2 修改ts.conf vi /usr/local/tslib/etc/ts.conf -》将#mole_raw input前的#去掉3 vi /etc/profile 添加export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event1
export QWS_MOUSE_PROTO=tslib:/dev/input/event1
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=none #避免出现“open console device: No such file or directory KDSETMODE: Bad file descriptor”的错误
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/libTSLIB_TSDEVICE 和QWS_MOUSE_PROTO这两项需要查看自己的板子的触摸屏设备对应/dev/input/下哪个文件可用cat /proc/bus/input/devices查看具体可参考博客http://blog.163.com/zhuandi_h/blog/static/180270288201222310291262/
顶
1
Ⅱ 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)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。所以其优缺点与动态编译的可执行文件正好互补。
Ⅲ ubuntu下编译qt库需要多久
1."Basic XLib functionality test failed!"
解决方式:apt-get install libX11-dev libXext-dev libXtst-dev
2."Xrender support cannot be enabled e to functionality tests!",此项导致QWebkit无法编译
解决方式:apt-get install libXrender-dev
3.另外为了支持opengl,phonon等还需要其它库
sudo apt-get install libglib2.0-dev
sudo apt-get install libgstreamer0.10-dev
sudo apt-get install libgstreamer-plugins-base0.10-dev
sudo apt-get install libxml-dev
sudo apt-get install xlibmesa-gl-dev
sudo apt-get install xlibmesa-glu-dev
sudo apt-get install xorg-dev
按照上述方式安装依赖库后,可以搞定。
然后make,make install
安装完后,需要设置环境变量
export QTDIR=/usr/local/Trolltech/Qt-4.8.2/
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/doc/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
Ⅳ 讨论上Windows平台怎么编译Qt5
Qt5的编译官方有一篇wiki:http://developer.qt.nokia.com/wiki/Building_Qt_5_from_Git
简要的总结下我的体会,欢迎补充完善、批评指正。
1.First clone the top-level qt5 git repository:
git clone git://gitorious.org/qt/qt5.git qt5
这一行不用说了,自然是将Qt5的代码克隆。不过,如果你只是初次克隆Qt5的代码,会很惊讶:为何克隆后的代码只有十几MB?
原来,Qt5已经实现了Qt的模块化,详见:http://labs.qt.nokia.com/2011/05/12/qt-moles-maturity-level-the-list/
所以可以在克隆得到的Qt5源码根目录下看到:.gitmoles 文件,其内容部分摘录如下:
[submole "qtbase"]
path = qtbase
url = git://gitorious.org/qt/qtbase.git
[submole "qtsvg"]
path = qtsvg
url = git://gitorious.org/qt/qtsvg.git
[submole "qtdeclarative"]
path = qtdeclarative
url = git://gitorious.org/qt/qtdeclarative.git
...
这时,有Git基础的朋友一定会想到:
git submole init
git submole update
不过,请不要这样做!
2. Following the README file we initialize the repository. This clones the various sub-moles of Qt5:
./init-repository
这是一个perl脚本。如果是在msys-git下,会发现Perl的版本不够。
我们需要安装一个Windows版本的Perl:http://www.activestate.com/activeperl/downloads
安装好以后,Perl就添加到PATH环境变量中去了。
在MSVC的控制台下执行:
perl init-repository --help
注意,不是直接执行init-repository,要用perl来执行它。看看帮助:大致了解下有哪些功能。
3. 注意它的三个小提示:
Hint1: If you’re going to contribute to Qt 5, you’ll need to pass the —codereview-username <Jira/Gerrit username> option to set up a “gerrit” remote for all the sub-moles.
Hint2: If you’re having problems downloading the webkit repository (which is quite big), you can pass —no-webkit.
Hint3: If you’re behind a firewall, pass —http
4. 我的方法:
perl init-repository -f --codereview-username loaden
这样就可以实现子模块的批处理了。特别要注意的是:在处理这些子模块时,其实是git clone了这些子模块,以致于他们可以独立使用。在qt5\qtbase目录下可以找到.git目录。
这与git submole update的结果是不一样的!!
同时我使用了codereview的用户名,是为了可以创建一个名为gerrit的远程仓库,可以将贡献的代码推送进去,类似:
git push gerrit HEAD:refs/for/master
5. 源码下载是非常慢的,因为QtWebkit达到了1.7GB。源码下载完成后,进入Qt5源码目录,配置环境变量:
set PATH=%CD%\qtbase\bin;%PATH%
之后echo看一下结果是否正确:
echo %PATH%
6. 建议直接在Qt5的源码目录下执行配置!
configure -confirm-license -opensource -release -shared -platform win32-msvc2010 -fast -no-stl -no-qt3support -nomake examples -nomake demos -nomake tests
7. 编译全部模块,直接执行nmake就可以了。如果只编译一个模块,可以这样:
nmake mole-qtbase
双击打开Qt5目录下的Makefile文件,可以看到有这些模块:
SUBTARGETS = \
mole-qtbase \
mole-qtsvg \
mole-qtphonon \
mole-qtxmlpatterns \
mole-qtdeclarative \
mole-qttools \
mole-qttranslations \
mole-qtdoc \
mole-qlalr \
mole-qtqa \
mole-qtlocation \
mole-qtactiveqt \
mole-qtsensors \
mole-qtsystems \
mole-qtmultimedia \
mole-qtfeedback \
mole-qtquick3d \
mole-qtdocgallery \
mole-qtpim \
mole-qtconnectivity \
mole-qtwayland \
mole-qtjsondb \
sub-qtwebkit-pri \
mole-qtwebkit-examples-and-demos
Ⅳ 怎么才能学好QT编程
我的Qt学习路线:
本身具备:精良的MFC编程能力及项目经验,一般的C++标准语法,一般的C++设计基础。
本身积累了不多的项目开发经验。
Qt学习路线:
配置VC++6.0和Qt4.4.0,编译Qt4.4.0库。网络查找相关资料和书籍。
阅读《QT学习笔记.doc》、《Qt4入门中文版.pdf》并练习、《QT中文手册.pdf》、《Qt学习之路》系列。
用Qt升级改造VC++6.0示波器程序,查看联机帮助。
安装QtCreator开发环境开发ERP程序。
项目需要吧,现在接触的反而少了一些。不过希望这个学习过程能够对您有所帮助。
既然你已经配置好开发环境了,那么也就离成功不远了,祝贺!
箴言:不求精通、熟练,但求能够循循道来、操之用之即可。