ubantu16.04搭建Qt环境

2020-08-19 11:01:08 浏览数 (1)

点击蓝字 关注我们

目录
  • 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 以及依赖库
代码语言:javascript复制
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

代码语言:javascript复制
tar -xzvf qt-everywhere-opensource-src-4.8.7.tar.gz
cd qt-everywhere-opensource-src-4.8.7		
配置环境

运行config配置qt环境

代码语言:javascript复制
./configure

配置过程中:选择 o ;选择yes;后面回车,稍等片刻

编译原码

直接make编译原码

代码语言:javascript复制
make	#漫长的等待

吐槽一下,编译了快一个小时,这是第三次配置qt环境

安装make
代码语言:javascript复制
sudo make install #安装完毕

这个就很快乐了

查看qmake是否安装

/usr/local/Trolltech/Qt-4.8.7/bin是安装目录

代码语言:javascript复制
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

记下当前路径

代码语言:javascript复制
pwd	#获取当前路径,配置环境变量要用
/usr/local/Trolltech/Qt-4.8.7/bin
配置环境变量
代码语言:javascript复制
sudo gedit /etc/profile

底部添加下面路径

代码语言:javascript复制
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/是我的路径,你需要改成上一步记下的路径

代码语言:javascript复制
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

解决办法:

代码语言:javascript复制
cd /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/
sudo gedit default.conf

default.config里面的内容如下

代码语言:javascript复制
 /usr/lib/x86_64-linux-gnu/qt4/bin
 /usr/lib/x86_64-linux-gnu/qt4

更换成pwd的那个路径

代码语言:javascript复制
 /usr/local/Trolltech/Qt-4.8.7/bin
 /usr/local/Trolltech/Qt-4.8.7
qmake编译c/c 代码

在一个项目文件夹下面创建一个main.c文件

代码语言:javascript复制
touch work
cd work
vim main.c

编辑如下代码

代码语言:javascript复制
#include<stdio.h>
int main(int argc,char* argv[])
{
    printf("33[1;33mhello world33[0m n");	
    return 0;
}

在Linux下gcc正常编译的话是

代码语言:javascript复制
gcc main.c -o main

使用qmake编译

代码语言:javascript复制
➜  work qmake -project
➜  work ls
main.c  qmake_demo  work.pro

查看qt_test.pro文件信息

代码语言:javascript复制
######################################################################
# Automatically generated by qmake (2.01a) Wed Jul 1 22:47:14 2020
######################################################################

TEMPLATE = app
TARGET =
DEPENDPATH  = .
INCLUDEPATH  = .

# Input
SOURCES  = main.c

看不懂没关系,下一步生成makefile

代码语言:javascript复制
qmake -makefile

这里生成的makefile比较复杂,就不列举了

代码语言:javascript复制
➜  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小结:

代码语言:javascript复制
qmake -project
qmake -makefile
make
安装qtcreator
代码语言:javascript复制
sudo apt-get install qtcreator

ps这个就简单多了

Linux编译Qt代码

演示

首先准备一个qt项目,将qt代码中的.h、.cpp、.ui文件移动到Linux下

代码语言:javascript复制
➜  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 添加下面代码

代码语言:javascript复制
QT        = core gui

greaterThan(QT_MAJOR_VERSION, 4): QT  = widgets

0 人点赞