当前位置: 首页 > news >正文

在远程非桌面版Ubuntu中使用Qt5构建Hello World项目

        在 Linux 下运行 Qt 应用程序,需要完成以下几个步骤,包括安装 Qt 工具、设置开发环境以及编译和运行项目。下面是详细的步骤:

1. 安装 Qt

1.1使用系统包管理器

sudo apt update 和 sudo apt install qt5-default qtcreator 命令用于更新 Ubuntu 的软件包列表并安装 Qt 5 的默认库以及 Qt Creator IDE。这些命令在桌面版和非桌面版(如 Ubuntu Server)的 Ubuntu 上都可以运行,但使用体验会有所不同。

sudo apt update
sudo apt install qt5-default qtcreator
  1. 图形环境:非桌面版的 Ubuntu 默认没有图形用户界面(GUI)。Qt Creator 是一个图形界面的集成开发环境(IDE),因此,如果您想在非桌面版上直接使用它,您需要安装和配置一个图形环境,如 X11 服务器(例如 Xvfb)或通过 SSH X11 转发。

  2. 远程开发:如果您不打算在非桌面版 Ubuntu 上运行图形界面,您仍然可以安装 Qt 库(qt5-default)以进行 Qt 应用程序的开发。在这种情况下,您可以在另一台计算机上使用 Qt Creator,并将项目配置为远程编译和运行在非桌面版 Ubuntu 上。

  3. 命令行工具:对于非桌面环境,您可能更倾向于使用命令行工具(如 qmake 和 make)来编译和管理您的 Qt 项目。这些工具随 qt5-default 包一起安装,无需图形界面即可使用。

1.2使用 Qt Online Installer (桌面版) 具体访问Qt官网

2. 安装开发工具

确保安装了编译工具,如 g++ 和 make。可以使用以下命令安装:

sudo apt install build-essential

build-essential 是一个元包,它包含了编译 C 和 C++ 应用程序所需的一系列工具和库。具体来说,它包括:

  • GNU 编译器集合(gcc 和 g++)
  • make 工具
  • 其他必要的库和开发工具

3. 安装 X 虚拟帧缓冲(Xvfb)(可选)

在服务器环境下没有图形界面,因此可以安装 X 虚拟帧缓冲(Xvfb)来模拟图形环境,以便运行 Qt 应用程序。

sudo apt install xvfb

4. 设置环境变量(不需要)

为了让Linux系统知道 Qt 的安装位置,还需要设置环境变量。假设你将 Qt 安装在 /opt/Qt 目录下:

export PATH=/opt/Qt/Tools/QtCreator/bin:/opt/Qt/5.15.2/gcc_64/bin:$PATH

但是请注意 :

  • 使用 apt 安装 Qt 时:一般不需要手动添加路径,系统会自动处理好。
  • 手动安装 Qt时:可能需要手动设置 PATH 环境变量,具体取决于安装位置。

        使用 apt 安装 qt5-default 和 qtcreator 时,Qt 和 Qt Creator 通常会安装在系统的标准目录中(例如 /usr/include/qt5 和 /usr/lib/x86_64-linux-gnu/qt5),这些目录通常已经包含在系统的库路径和头文件搜索路径里。在通过 apt 安装的情况下,Qt Creator 的可执行文件也会放在 /usr/bin 中,这个路径默认是包含在系统的 PATH 环境变量中的。

5. 构建"Hello World"项目

 5.1. 创建project项目

首先,为你的项目创建一个目录,例如 project:

mkdir project
cd project
5.2. 创建 .pro 文件

在项目目录中创建一个 .pro 文件。你可以使用 qmake 的 -project 选项来生成一个基本的 .pro 文件,但也可以手动创建和编辑这个文件。

手动创建 .pro 文件

创建一个名为 hello.pro 的文件,并在其中添加以下内容:

QT += core
QT -= guiCONFIG += c++11TARGET = hello
TEMPLATE = appSOURCES += main.cpp

这个 .pro 文件配置了项目的基本设置:

  • 使用 Qt Core 模块。
  • 不使用 Qt GUI 模块。
  • 启用 C++11 特性。
  • 目标文件名为 hello。
  • 项目模板为应用程序。
  • 包含一个源文件 main.cpp

QT += core:
        指定该项目使用 Qt Core 模块。Qt Core 模块提供了构建 Qt 应用程序的基本功能,如事件循环、信号与槽、时间管理等。
QT -= gui:
        取消使用 Qt GUI 模块。这意味着该项目不使用图形用户界面相关的功能。通常在构建命令行工具或服务器应用程序时会这么做。
CONFIG += c++11:
        启用 C++11 特性,允许使用 C++11 提供的语法和库功能。C++11 引入了一些新特性,如智能指针、范围 for 循环、lambda 表达式等。
TARGET = hello:
        指定生成的可执行文件的名称为 hello。这个名称将在构建后生成对应的可执行文件。
TEMPLATE = app:
        指定该项目的模板类型为应用程序。app 意味着这是一个完整的可执行应用程序,而不是一个库或其他类型的构建。
SOURCES += main.cpp:
        指定项目的源文件。这里指定了一个名为 main.cpp 的源文件,该文件中包含项目的实现代码。

5.3. 创建源文件并生成Makefile

在项目目录中创建一个名为 main.cpp 的文件,并添加一些简单的代码。例如:

#include <QCoreApplication>
#include <QDebug>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);qDebug() << "Hello, Qt!";return a.exec();
}

这个代码创建了一个简单的 Qt 应用程序,输出 “Hello, Qt!”。

在项目目录中运行以下命令来生成 Makefile:

qmake

qmake 会读取 .pro 文件并生成相应的 Makefile

5.5. 编译并运行项目

使用 make 命令编译项目:

make

这将生成可执行文件 hello 在当前目录中。你可以使用 ./ 运算符运行生成的可执行文件:

./hello

如果一切正常,你将看到输出:

Hello, Qt!

6. 解决依赖问题

如果你在运行时遇到依赖问题(如缺少动态库),可以通过以下命令进行修复:

sudo apt install <missing-library-name>

通常,可以通过系统的包管理器找到所需的库。例如,如果缺少 libQt5Widgets.so 等,可以安装以下包:

sudo apt install libqt5widgets5

总结

  1. 安装 Qt:通过系统包管理器安装 Qt。
  2. 安装开发工具:安装所需的编译工具。
  3. 创建并编写 Qt 项目:创建新项目并编辑代码。
  4. 编译和运行:通过终端手动执行构建和运行命令。
http://www.lryc.cn/news/454863.html

相关文章:

  • netty之基础aio,bio,nio
  • 在找工作吗?给你一个AI虚拟面试官助力你提前准备面试
  • @KafkaListener注解中containerFactory属性的作用
  • 1006C简单题(计数式子的组合意义 + dp式子联立)
  • 千益畅行,旅游创业新模式的创新与发展
  • 单调栈day54|42. 接雨水(高频面试题)、84. 柱状图中最大的矩形、两道题思维导图的汇总与对比
  • 关于Excel将列号由字母改为数字
  • 曾黎第二次受邀巴黎时装周看秀 为新疆棉代言引人瞩目
  • No.6 笔记 | Linux操作系统基础:全面概览与核心要点
  • MySQL之分库分表后带来的“副作用”你是怎么解决的?
  • 【Python】Python-JOSE:Python 中的 JSON Web Token 处理库
  • SpringBoot3+Druid YAML配置
  • 【c语言——指针详解(3)】
  • QT系统学习篇(2)- Qt跨平台GUI原理机制
  • 运用MinIO技术服务器实现文件上传——在Linux系统上安装和启动(一)
  • Python技术深度探索:从基础到进阶的实践之旅(第一篇)
  • 利士策分享,旅游是否要舟车劳顿才能尽兴?
  • C++入门——类的默认成员函数(取地址运算符重载)
  • 学习记录:js算法(四十九):二叉树的层序遍历
  • 【PCB工艺】表面贴装技术中常见错误
  • 3.使用条件语句编写存储过程(3/10)
  • Effective C++中文版学习记录(三)
  • VBA学习(76):文件合并神器/代码
  • 非农就业数据超预期,美联储降息步伐或放缓?
  • 每日OJ题_牛客_乒乓球筐_哈希_C++_Java
  • 基于SpringBoot+Vue的酒店客房管理系统
  • 检索增强思考 RAT(RAG+COT):提升 AI 推理能力的强大组合
  • python脚本实现Redis未授权访问漏洞利用
  • 简单线性回归分析-基于R语言
  • 上海理工大学《2023年+2019年867自动控制原理真题》 (完整版)