在 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
-
图形环境:非桌面版的 Ubuntu 默认没有图形用户界面(GUI)。Qt Creator 是一个图形界面的集成开发环境(IDE),因此,如果您想在非桌面版上直接使用它,您需要安装和配置一个图形环境,如 X11 服务器(例如 Xvfb)或通过 SSH X11 转发。
-
远程开发 :如果您不打算在非桌面版 Ubuntu 上运行图形界面,您仍然可以安装 Qt 库(
qt5-default
)以进行 Qt 应用程序的开发。在这种情况下,您可以在另一台计算机上使用 Qt Creator,并将项目配置为远程编译和运行在非桌面版 Ubuntu 上。 -
命令行工具 :对于非桌面环境,您可能更倾向于使用命令行工具(如
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 -= gui
CONFIG += c++11
TARGET = hello
TEMPLATE = app
SOURCES += 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
总结
- 安装 Qt:通过系统包管理器安装 Qt。
- 安装开发工具:安装所需的编译工具。
- 创建并编写 Qt 项目:创建新项目并编辑代码。
- 编译和运行:通过终端手动执行构建和运行命令。