专栏首页编程学习基地ubantu16.04搭建Qt环境

ubantu16.04搭建Qt环境

点击蓝字 关注我们

目录
  • 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");	
    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

本文分享自微信公众号 - 编程学习基地(LearnBase),作者:DeRoy

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数字时钟

    数字时钟程序,制作的出发点是因为参考程序太简单了,又想起了一个抖音挺火的数字时钟,后就开始创作这个小程序,这个数字时钟程序我也不是凭空捏造出来的,我参考的是一个...

    DeROy
  • 文件打包解包的方法

    在很多情况下,软件需要隐藏一些图片,防止用户对其更改,替换。例如腾讯QQ里面的资源图片,哪怕你用Everything去搜索也搜索不到,那是因为腾讯QQ对这些资源...

    DeROy
  • Qt附加工具--多语言国际化

    Qt Assistant是可配置且可重新发布的文档阅读器,可以方便地进行定制并与Qt应用程序一起重新发布。Qt Assistant已经被整合进Qt Creato...

    DeROy
  • Postman 如何处理上一个接口返回值作为下一个接口入参?

    前两天做接口测试,有一个接口的参数是一个校验 token,会实时更新,开发提供了一个单独返回实时 token 的接口,所以就需要在功能接口使用时调用 token...

    sylan215
  • 干货|十分钟快速复习禁忌搜索(c++版)

    说到的话一定要做到!做到!到! 昨天向大家保证今天分享 Tabu Search (TS) 代码 c++ 版本,然后,小编就去熬了个夜... ...

    用户1621951
  • MySQL 在查询结果中记录行号

    在其他的关系型数据库中,都有rownum这类型的内置函数来提供查询结果的行号,但是MySQL没有,阿福也一直觉得奇怪。

    用户2353021
  • JavaScript 九宫格抽奖

    这是之前国庆活动所做的一个新功能,以往抽奖都是采用转盘的形式,这次换了个新的玩法,折腾了两天才实现,主要代码出自哪里已经无法考究了,我做了部分优化,贴上来给大家...

    Nian糕
  • IntelliJ IDEA 2018.3 首个 Beta 版发布!支持 JVM Profiler 呀

    IntelliJ IDEA 秋季的重大更新版本 2018.3 宣布进入 Beta 阶段,并已发布首个 Beta 版本。

    芋道源码
  • Web前端性能基础指标&计算方式

    从用户角度而言,打开一个页面想要的就是页面可以尽快有响应,加载完并且可以允许交互;因此前端的性能可以用白屏时间,首屏时间,可交互时间来衡量。

    腾讯移动品质中心TMQ
  • 人人能上手:OpenAI发射初学者友好的强化学习教程 | 代码简约易懂

    他们刚刚发射了一套强化学习 (RL) 入门教程,叫做Spinning Up。真诚友好,无微不至。

    量子位

扫码关注云+社区

领取腾讯云代金券