目录
-
-
ubantu16.04搭建Qt环境
-
下载opensource
-
安装qmake
-
安装g++以及依赖库
-
配置环境
-
编译原码
-
安装make
-
查看qmake是否安装
-
-
配置环境变量
-
qmake编译c/c++代码
-
安装qtcreator
-
Linux编译Qt代码
-
-
ubantu16.04搭建Qt环境
下载opensource
「下载 qt-everywhere-opensource-src-4.8.7.tar.gz:http://download.qt-project.org/archive/qt/4.8/4.8.7/」
地址
安装qmake
安装g++以及依赖库
sudo apt-get install g++
sudo apt-get install g++-multilib libx11-dev libxext-dev libxtst-dev zlib1g-dev lib32ncurses5 lib32z1 libpng-dev autoconf automake libtool
Linux下解压解压qt-everywhere-opensource-src-4.8.7.tar.gz
tar -xzvf qt-everywhere-opensource-src-4.8.7.tar.gz
cd qt-everywhere-opensource-src-4.8.7
配置环境
运行config配置qt环境
./configure
配置过程中:选择 o ;选择yes;后面回车,稍等片刻
编译原码
直接make编译原码
make #漫长的等待
吐槽一下,编译了快一个小时,这是第三次配置qt环境
安装make
sudo make install #安装完毕
这个就很快乐了
查看qmake是否安装
/usr/local/Trolltech/Qt-4.8.7/bin是安装目录
cd /usr/local/Trolltech/Qt-4.8.7/bin
./qmake -v #返回下面结果说明安装成功
QMake version 2.01a
Using Qt version 4.8.7 in /usr/local/Trolltech/Qt-4.8.7/lib
记下当前路径
pwd #获取当前路径,配置环境变量要用
/usr/local/Trolltech/Qt-4.8.7/bin
配置环境变量
sudo gedit /etc/profile
底部添加下面路径
QTDIR=/usr/local/Trolltech/Qt-4.8.7/
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.8.7/
是我的路径,你需要改成上一步记下的路径
source /etc/profile #更新完之后颜色变灰了
cd ~ #回到用户目录
qmake -v #查看版本
QMake version 2.01a
Using Qt version 4.8.7 in /usr/local/Trolltech/Qt-4.8.7/lib
exit#退出当前终端
#重新打开终端
qmake -v #又找不到qmake
解决办法:
cd /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/
sudo gedit default.conf
default.config里面的内容如下
/usr/lib/x86_64-linux-gnu/qt4/bin
/usr/lib/x86_64-linux-gnu/qt4
更换成pwd的那个路径
/usr/local/Trolltech/Qt-4.8.7/bin
/usr/local/Trolltech/Qt-4.8.7
qmake编译c/c++代码
在一个项目文件夹下面创建一个main.c文件
touch work
cd work
vim main.c
编辑如下代码
#include<stdio.h>
int main(int argc,char* argv[])
{
printf("\033[1;33mhello world\033[0m \n");
return0;
}
在Linux下gcc正常编译的话是
gcc main.c -o main
使用qmake编译
➜ work qmake -project
➜ work ls
main.c qmake_demo work.pro
查看qt_test.pro文件信息
######################################################################
# Automatically generated by qmake (2.01a) Wed Jul 1 22:47:14 2020
######################################################################
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
# Input
SOURCES += main.c
看不懂没关系,下一步生成makefile
qmake -makefile
这里生成的makefile比较复杂,就不列举了
➜ work vim work.pro
➜ work qmake -makefile
➜ work ls
main.c Makefile qmake_demo work.pro
➜ work vim Makefile
➜ work make
gcc -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.c
main.c: In function ‘main’:
main.c:2:14: warning: unused parameter ‘argc’ [-Wunused-parameter]
int main(int argc,char* argv[])
^
main.c:2:25: warning: unused parameter ‘argv’ [-Wunused-parameter]
int main(int argc,char* argv[])
^
g++ -m64 -Wl,-O1 -o work main.o -L/usr/lib/x86_64-linux-gnu -lQtGui -lQtCore -lpthread
➜ work ls
main.c main.o Makefile qmake_demo work work.pro
➜ work ./work
hello world
qmake小结:
qmake -project
qmake -makefile
make
安装qtcreator
sudo apt-get install qtcreator
ps这个就简单多了
Linux编译Qt代码
演示
首先准备一个qt项目,将qt代码中的.h、.cpp、.ui文件移动到Linux下
➜ work ls
main.cpp mainwindow.ui Translate_CN.ts ui_mainwindow.h
mainwindow.cpp moc_mainwindow.cpp Translate_EN.qm
mainwindow.h Translate_CN.qm Translate_EN.ts
➜ work
➜ work qmake -project
➜ work gedit work.pro
➜ work qmake -makefile
➜ work make -j4
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o main.o main.cpp
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o mainwindow.o mainwindow.cpp
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o moc_mainwindow.o moc_mainwindow.cpp
g++ -m64 -Wl,-O1 -o work main.o mainwindow.o moc_mainwindow.o -L/usr/lib/x86_64-linux-gnu -lQtGui -lQtCore -lpthread
➜ work ls
main.cpp mainwindow.o moc_mainwindow.o Translate_EN.ts
main.o mainwindow.ui Translate_CN.qm ui_mainwindow.h
mainwindow.cpp Makefile Translate_CN.ts work
mainwindow.h moc_mainwindow.cpp Translate_EN.qm work.pro
➜ work ./work
➜ work
在gedit qt_test.pro 添加下面代码
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets