ubantu16.04搭建Qt环境

小编:啊南 141阅读 2021.01.18

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
int main(int argc,char* argv[])
{
    printf("\033[1;33mhello world\033[0m \n");	
    return 0;
}

在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
关联标签: