当前位置:首页 » 编程软件 » qt53编译

qt53编译

发布时间: 2023-08-08 11:45:37

㈠ qt编译问题

QT默认安装后 在options 下有 QT4 选项 有QT versions 需要设置下QT的目录
QT的编译采用MinGW的编译器(开源版)MinGW是GCC的Win移植版.

Could not find make command: mingw32-make.exe in the build environment 意思是找不到MinGW的make工具,请将MinGW的bin目录加入系统的path变量中,在options中有调试器(debug)中选择mingw调试器gdb的位置
(位于MinGw bin目录下)

㈡ 讨论上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

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

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

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

㈣ qt编译报错后不断编译就会成功

qt编译报错后不断编译可能会成功。重启qt,编译程序会继续报错,此时,只需要将对应的cl.exe和cldll.dll拷贝到vc14目录下可能会成功,错后不断编译,找准相应的方式与方法总会成功的。

㈤ qt5.5怎么编译 vs2013调试

1、VS2013
这个不消我不多说,微软有名的集成开发环境,凡是编过程的朋友都知道怎么下载安装。
2、qt5.5.1安装包
包含相应的Qt库和Qt集成开发环境(即QtCreater)。
3、qt vs插件
为了帮助在VS中创建Qt项目,并对其进行调试编译。
注意,由于目前Qt已经分为多个版本,有些商业版本需要向开发者收费,而另一些开源版则是免费提供,故而在下载前,会有好几个问题让大家回答。由于某些朋友英文学得不是太好,在接下来的步骤中,我会一一向大家解释回答的要领。

下载方法:
首先,打开如图所示的网址,下载相应的Qt安装包。在下载界面,第一个问题是让你选择下载的Qt版本,由于我们需要下载的是免费版本,故而在此选择社区版。
注意,商业版是要收费的,价格我猜大多数初学编程的人都难以承受。

第二个问题是你想使你的产品受到保护吗。也就是,代码保密,不开源。如果代码不开源,那就是商业版的范畴,因此我们在此选择不。

第三个问题是程序如何链接到Qt库,在此选择静态链接,这样生成的程序体积会大点。不然,写一个程序就让程序带着Qt库文件到处跑,确定蛮烦人的。

5
第四个问题是你准备让你的程序代码开源吗?选择是。虽然一百个不愿意开源,可是不开源就要出钱买商业版,没办法。

㈥ linux下 qt程序源代码如何编译运行

仔细看里面的源代码,应该有一些文件里有连接到*.lib文件的,这是QT的动态库文件把QT库编译成linux下的*.lib,然后编译的时候,把lib文件放在同一文件夹,并且编译命令加上-l *.lib或者放到根目录下的lib目录下也可以。这样试一下。.o文件还需要经过连接才能生成可执行的文件。

㈦ cmake + Qt 5 编译出错,请帮忙看看怎么解决

Qt在编译时,需要首先使用uic.exe编译UI文件,通过moc.exe处理Q_OBJECT之类的宏,当然你可以去掉这些定义,否则就需要加上:

# COMPILE UIs
SET(UIS
mnwindow
)

FOREACH (ui_file ${UIS})
SET(TMP_IN "${PROJECT_SOURCE_DIR}/res/${ui_file}.ui")
SET(TMP_OUT "${PROJECT_BINARY_DIR}/ui_${ui_file}.h")
EXECUTE_PROCESS(COMMAND ${QT_FOLDER}/bin/uic.exe -o ${TMP_OUT} ${TMP_IN})
MESSAGE(STATUS "EXEC=${QT_FOLDER}/bin/uic.exe -o ${PROJECT_BINARY_DIR}/ui_${ui_file}.h ${PROJECT_SOURCE_DIR}/res/${ui_file}.ui")
ENDFOREACH(ui_file)

# CREATE MOC
SET(HEADERS
mainwindow
)

FOREACH (header_file ${HEADERS})
SET(TMP_IN "${PROJECT_SOURCE_DIR}/inc/${header_file}.h")
SET(TMP_OUT "${PROJECT_BINARY_DIR}/moc_${header_file}.cpp")
EXECUTE_PROCESS(COMMAND ${QT_FOLDER}/bin/moc.exe -o ${TMP_OUT} ${TMP_IN})
SET(MOCS ${MOCS} ${PROJECT_BINARY_DIR}/moc_${header_file}.cpp)
MESSAGE(STATUS "EXEC=${QT_FOLDER}/bin/moc.exe -o ${PROJECT_BINARY_DIR}/moc_${header_file}.cpp ${PROJECT_SOURCE_DIR}/inc/${header_file}.h")
ENDFOREACH(header_file)

free c#.net qr creator
这里要注意的是:EXECUTE_PROCESS在COMMAND后面不能加引号,命令直接写,否则执行的程序也不会出错,但也不会正常运行.

㈧ 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)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。所以其优缺点与动态编译的可执行文件正好互补。

㈨ Qt5 在Linux 下的编译,该怎么处理

[wanglj@localhost testQT]$ make
g++ -o testQT main.o -L/opt/Qt5.1.1/5.1.1/gcc_64/lib -lqt-mt -lXext -lX11 -lm
main.o: In function `main':
/home/wanglj/testQT/main.cpp:6: undefined reference to `QApplication::QApplication(int&, char**, int)'
main.o: In function `QString':
/usr/include/QtCore/qstring.h:413: undefined reference to `QString::fromAscii_helper(char const*, int)'
main.o: In function `main':
/home/wanglj/testQT/main.cpp:7: undefined reference to `QLabel::QLabel(QString const&, QWidget*, QFlags<Qt::WindowType>)'
main.o: In function `~QString':
/usr/include/QtCore/qstring.h:869: undefined reference to `QString::free(QString::Data*)'
/usr/include/QtCore/qstring.h:869: undefined reference to `QString::free(QString::Data*)'
collect2: ld 返回 1
make: *** [testQT] 错误 1

但若直接用 qtcreator 打开编译,则无错误
并且find -name libqt-mt* 也找不到其他版本的该文件

用qtcreator编译好的可执行文件,也找不到连接该lib文件

[wanglj@localhost build-testQT-桌面-Debug]$ ldd testQT
linux-vdso.so.1 => (0x00007fff4ddff000)
libQtGui.so.4 => /usr/lib64/libQtGui.so.4 (0x000000397f000000)
libQtCore.so.4 => /usr/lib64/libQtCore.so.4 (0x000000397ea00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003978600000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fda6a081000)
libm.so.6 => /lib64/libm.so.6 (0x0000003977a00000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003983a00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003977e00000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x000000397a600000)
librt.so.1 => /lib64/librt.so.1 (0x0000003978e00000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x0000003979200000)
libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x000000397be00000)
libz.so.1 => /lib64/libz.so.1 (0x0000003978a00000)
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x000000397ba00000)
libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x0000003979e00000)
libSM.so.6 => /usr/lib64/libSM.so.6 (0x0000003985a00000)
libICE.so.6 => /usr/lib64/libICE.so.6 (0x0000003984e00000)
libXi.so.6 => /usr/lib64/libXi.so.6 (0x000000397ce00000)
libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x000000397d600000)
libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x000000397de00000)
libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x000000397da00000)
libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x000000397e200000)
libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x000000397e600000)
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x000000397d200000)
libXext.so.6 => /usr/lib64/libXext.so.6 (0x000000397c600000)
libX11.so.6 => /usr/lib64/libX11.so.6 (0x000000397b600000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003978200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003977600000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003983600000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x000000397c200000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x000000397ae00000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x000000397aa00000)

------解决方案--------------------
INCPATH = -I/usr/lib64/qt-3.3/mkspecs/default -I. -I. -I$(QTDIR)/include
这一行看上去你调用的qmake不是5.1.1的。试试指定完整路径运行qmake
/opt/Qt5.1.1/5.1.1/gcc_64/bin/qmake testQT.pro

热点内容
php小票打印机 发布:2025-02-05 03:42:00 浏览:613
vivo安卓手机如何连接蓝牙耳机 发布:2025-02-05 03:40:30 浏览:957
youtubeapp缓存 发布:2025-02-05 03:33:10 浏览:747
vc遍历文件夹 发布:2025-02-05 03:33:09 浏览:479
怎么设dns服务器地址 发布:2025-02-05 03:31:57 浏览:758
访问服务器文件夹 发布:2025-02-05 03:29:38 浏览:38
新手机的密码在哪里 发布:2025-02-05 03:28:04 浏览:480
lol按键源码 发布:2025-02-05 03:11:47 浏览:899
wordpress安装linux 发布:2025-02-05 03:01:53 浏览:140
c语言中的temp 发布:2025-02-05 02:43:08 浏览:125