ubantu16.04搭建Qt环境

news2024/12/26 16:05:05

目录

    • 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/682510.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用于配电室的内部环境监控系统设计与产品选型

摘要&#xff1a;配电室是配电系统的重要组成部分&#xff0c;影响着电力用户的用电需求&#xff0c;需要保障其安全、可靠运行。针对配电室内部环境进行了深入分析&#xff0c;设计了一种内部环境监控系统。通过该系统可以采集配电室内部的温度、湿度、液位、SF6气体和烟雾&am…

伪随机码详解

本专栏包含信息论与编码的核心知识&#xff0c;按知识点组织&#xff0c;可作为教学或学习的参考。markdown版本已归档至【Github仓库&#xff1a;https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。 文章目录 伪随机码伪随机序列…

期末复习【网络安全】

期末复习【网络安全】 前言推荐期末复习第1章 引言1.1 计算机安全概念1.2 OSI安全体系结构 61.3 安全攻击 71.3.1 被动攻击1.3.2 主动攻击 第2章 对称加密和消息机密性2.1 对称加密原理 232.1.3 Feistel密码结构 25 2.2 对称分组加密算法 272.2.1 数据加密标准2.2.2 三重DES2.2…

【C#】并行编程实战:任务并行性(下)

本章继续介绍任务并行性&#xff0c;因篇幅所限&#xff0c;本章为下篇。 6、处理任务异常 所有优秀的程序员都擅长高效地处理异常&#xff0c;这也是并行编程最重要的方面之一。任务并行库&#xff08;TPL&#xff09;提供了一种高效的设计来处理异常&#xff1a;任务中发生的…

山西电力市场日前价格预测【2023-06-26】

日前价格预测 预测明日&#xff08;2023-06-26&#xff09;山西电力市场全天平均日前电价为395.92元/MWh。其中&#xff0c;最高日前价格为477.34元/MWh&#xff0c;预计出现在19: 00。最低日前电价为309.90元/MWh&#xff0c;预计出现在13: 00。以上预测仅供学习参考&#xff…

Android中的EventBus变迁史

Android中的EventBus变迁史 什么是EventBus&#xff1f; EventBus是软件架构中使用的一种通信机制&#xff0c;用于促进系统内不同组件或服务之间的事件交换。它为组件提供了一种发布和订阅事件的方法&#xff0c;从而实现松散耦合和异步通信。 EventBus充当中央集线器或消息…

SpringBoot 性能优化的主要组件及特点

SpringBoot 性能优化的主要组件及特点 简介 在开发应用程序时&#xff0c;性能是一个非常重要的因素。如果应用程序的性能不佳&#xff0c;那么它可能会影响用户的体验&#xff0c;甚至会导致系统崩溃。而在 SpringBoot 应用程序中&#xff0c;我们可以通过一些组件来优化应用…

PCB板为什么要做表面处理?你知道吗

PCB板为什么要做表面处理&#xff1f; 由于PCB上的铜层很容易被氧化&#xff0c;因此生成的铜氧化层会严重降低焊接质量&#xff0c;从而降低最终产品的可靠性和有效性&#xff0c;为了避免这种情况的发生&#xff0c;需要对PCB进行表面处理。 常见的表面处理方式包括OSP、喷…

Java虚拟机(JVM)面试题

JVM 说一下 JVM 的主要组成部分及其作用&#xff1f; 总体来说&#xff0c;方法区和堆是所有线程共享的内存区域&#xff1b;而虚拟机栈、本地方法栈和程序计数器的运行是线程私有的内存区域&#xff0c;运行时数据区域就是我们常说的JVM的内存 类加载子系统&#xff1a;根据…

SpringBoot 使用 MockMvc 进行 Web 集成测试

SpringBoot 使用 MockMvc 进行 Web 集成测试 在 SpringBoot 应用程序中&#xff0c;我们可以使用 MockMvc 进行 Web 集成测试。MockMvc 是一个测试框架&#xff0c;可以模拟 HTTP 请求和响应&#xff0c;并且可以使用 Spring MVC 的控制器进行测试。MockMvc 可以让我们测试 Sp…

Apollo分布式配置中心(一)

目录 什么是配置&#xff1f; 什么是配置中心&#xff1f; 配置中心需要满足条件 什么是Apollo&#xff1f; Apollo特性 Apollo执行流程 Apollo安装 Git地址&#xff1a; 用户手册&#xff1a; 环境准备&#xff1a; 使用idea 的git clone 拉取源码 修改Apollo\scripts…

面对AI,要(能)当“杜兰特”吗?

大家好&#xff0c;我是老三&#xff0c;先说一下这篇文章没什么干货&#xff0c;就是一篇随笔。 今天闲来无事&#xff0c;在掘金上刷到一篇文章&#xff1a;GPT-4都来了&#xff0c;我们还需要刷算法题和背八股文吗&#xff1f;&#xff1a;https://juejin.cn/post/72111208…

总结Linux 中实时查看日志的3种方法

一、前言 我们大家应该都知道如何在 Linux 中查看文件&#xff0c;比如可以使用 cat 或者 less 命令。 这对于查看静态文件来说是可以的&#xff1b;日志文件是动态的&#xff0c;其内容随时会变化&#xff0c;要监测日志文件&#xff0c;需要在日志文件内容改变时也能实时看到…

配置右键菜单功能 :一键csv转excel

配置右键菜单功能 &#xff1a;一键csv转excel 无需点开文件&#xff0c;双击即可以生成新的excel文件 步骤&#xff1a; 1、配置Python&#xff0c;安装依赖库 pip install openpyxl pip install pandas2、创建Python文件 csv_to_excel.py # -*- coding:utf-8 -*- impor…

【光伏集群、需求响应】市场模式下光伏用户群的电能共享与需求响应模型(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

团体程序设计天梯赛-练习集L2篇⑤

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;Hello大家好呀&#xff0c;我是陈童学&#xff0c;一个与你一样正在慢慢前行的普通人。 &#x1f3c0;个人主页&#xff1a;陈童学哦CSDN &#x1f4a1;所属专栏&#xff1a;PTA &#x1f381;希望各…

Vue+leaflet笔记之克里金插值

Vueleaflet笔记之克里金插值 文章目录 Vueleaflet笔记之克里金插值开发环境代码简介组件库简介安装依赖库实现思路turf生成随机数据方法一&#xff1a;kriging库插值方法二&#xff1a;kriging-contour插值(矢量)方法三&#xff1a;kriging-contour插值(栅格) 本文介绍了Web端使…

逆向工具(IDA、pyinstxtractor+uncompyle6、jadx等持续更新)

IDA Pro IDA Pro&#xff08;Interactive Disassembler Professional&#xff09;交互式反汇编器专业版&#xff0c;CTF、RE、PWN必备。 打开一个可执行文件前&#xff0c;应先用file命令或者DIE等工具&#xff0c;确定是32位还是64位&#xff0c;然后用相应的IDA工具打开可执…

ModaHub魔搭社区:商业向量数据库产品Pincone的特点与应用

目录 Pincone简介 Pincone有以下几个特点 高性能搜索 全功能管理 轻松扩容 Pincone能干什么&#xff1f; 如何接入Pincone Pincone简介 Pincone 可以算是当前最火的商业向量数据库产品了&#xff0c;它最近获得了1亿美元的B轮融资&#xff0c;估值达到7.5 亿美元&#x…

YOLOv8实战火焰和烟雾检测 (视频教程)

课程链接&#xff1a;https://edu.csdn.net/course/detail/38718 YOLOv8 基于先前 YOLO 版本在目标检测任务上的成功&#xff0c;进一步提升性能和灵活性。 本课程将手把手地教大家使用YOLOv8结合可变形卷积&#xff08;deformable convolution&#xff09;训练火焰和烟雾数…