c++ - 如何让我的基于 makefile 的 C++ 项目以最短和最简单的方式与 QT 库一起工作?

标签 c++ qt makefile

我有一个基于Makefile 的C++ 项目。 我使用 Eclipse 和 IDE(在 Ubuntu 上),它与 Makefile 完美配合。我自己手写Makefile,所以不需要任何可以自动生成的东西。

听说QT使用它自己的qmake buld系统,它从.pro项目文件生成Makefile:

In addition to Qt Creator, Qt provides qmake, a cross-platform build script generation tool that automates the generation of Makefiles for development projects across different platforms.

Eclipse QT 插件描述说:

The Qt Eclipse Integration seamlessly integrates the whole Qt development workflow: Pure qmake based project management (not imposing Eclipse specific project file formats) with a .pro file importer and graphical project editor

似乎如果我想使用 Qt,它绝对必须使用它自己的 qmake 构建系统,它将生成 makefile。我不喜欢这个想法,因为我的 Makefile 太复杂了,我不想花很多精力来弄清楚如何将我的整个 Makefile 转换为 .pro 文件或类似文件。

  1. 有没有什么方法可以像使用任何其他库一样使用 Qt,将其安装到系统中,包括我的代码中的头文件并提供包含它的链接器路径?不改变整个构建系统,即坚持使用手动编辑的 makefile 而不是使用 QtEditor,而是像以前一样使用 Eclipse?我不需要任何与 GUI 相关的 Qt 东西。
  2. 我一定要使用qmake吗?我可以像以前一样只使用 make 命令吗?

最佳答案

我相信您可以像使用其他 C++ 库和现有 Makefile 一样使用 Qt 库。您只需将任何 Qt 应用程序或库视为具有特定依赖项的常规 C++ 应用程序或库。

然而,Qt 的信号/槽功能需要使用 Qt 的 moc 实用程序生成一些额外的代码。这对于 Qt4 项目尤其如此,如果您使用基于信号/插槽连接的“传统”宏。因此,您必须在 Makefile 中编写额外的规则来处理 moc header 。有很多关于如何做到这一点的例子。例如:thisthis .

关于c++ - 如何让我的基于 makefile 的 C++ 项目以最短和最简单的方式与 QT 库一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48767576/

相关文章:

C++ priority_queue 没有推送?

c++ - 在项目设置中设置 _HAS_ITERATOR_DEBUGGING=0(有时)没有效果

c++ - 定义一个函数,使其可以接受列表或 vector

c++ - QTreeView:如何中止选择更改

c++ - 对 void* 指针进行右投

c++ - 公共(public)成员未初始化

c++ - QTransform scale 和 boundingRect.size() 的关系

makefile - 使用 ifeq 在 Makefile 中定义条件变量

android - AOSP构建错误

java - JNI : "receipe for target ' HelloJNI. h' 在使用 'makefile' 时失败