我应该把 QT5 克隆放在这个项目的什么地方

Where do I put the QT5 clone in this project

这是我第一次使用 C++,请放轻松。我有大约 7000 小时的 Python 经验,所以我并非完全无能为力。我正在尝试阅读为此处找到的 Collat​​inus 软件编写的代码。 collatinus。初始文件好像是这样的:

VERSION = "11.2"

DEFINES += VERSION=\\"$$VERSION\\"
DEFINES += MEDIEVAL

TEMPLATE = app
TARGET = collatinusd
INCLUDEPATH += . src
DEPENDPATH += .

DESTDIR = bin
OBJECTS_DIR= obj/
MOC_DIR = moc/
QMAKE_DISTCLEAN += $${DESTDIR}/collatinus

CONFIG += console
CONFIG -= app_bundle
CONFIG += release_binary

QT += core
QT -= gui
QT          += xmlpatterns
QT += network

我已经从 qt and got the open source qt5. Now I cannot figure out where to put the file. I have tried putting it in the same folder as the above mentioned code. I have also tried putting in the folder marked src. In the src folder there are many files which use QT but it seems like the files are supposed to be taken out of the QT folder. For example in this 文件中下载了 qt 我们在第 28 行有语法

#include <QDebug>

QDebug 文件在 QT 文件夹中。但是当我将 qt 文件夹放在最顶层文件夹或 src 文件夹中时,我收到错误消息:

fatal error: 'QtCore' file not found
#include <QtCore>

所以文件结构如下:

/collatinus-daemon
    collatinus.pro (and other files)
   //src
        flexion.cpp (and other files)

那么qt文件夹放在哪里呢?此外,我将其从 qt5 重命名为 qt,因为语法包含以下行:

QT += core

################### 好的,我已经启动了 QT 创建器 运行。这是专业文件

QT += network widgets
QT += core
QT -= gui

TARGET = Client_C11
VERSION = "1.0"
#CONFIG += console
#CONFIG -= app_bundle
CONFIG += release_binary

TEMPLATE = app

SOURCES += src/client_main.cpp
OBJECTS_DIR= obj/
MOC_DIR = moc/
unix:!macx:DESTDIR = bin

macx:{
# Commandes spéciales pour déployer l'application sur Mac.
# J'ignore s'il faut l'équivalent pour Linux ou Windows.
# Philippe. Octobre 2016

QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.8
ICON = collatinus_bw.icns

deploy.commands = macdeployqt Client_C11.app
QMAKE_EXTRA_TARGETS += deploy

}

以下是我的文件夹的一些屏幕截图:

这是我收到的错误消息:

这里也是客户端main的代码

#include <QCoreApplication>
#include <iostream>
#include <QtWidgets>
#include <QtNetwork>

class QTcpSocket;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QString req = "";
    if (argc > 1)
    {
        int i = 1;
        while (i < argc)
        {
            QString suite(argv[i]);
            req += " " + suite;
            i++;
        }
    }
    else req = "-?"; // pour afficher l'aide.

    QTcpSocket * tcpSocket = new QTcpSocket();
    tcpSocket->abort();
    tcpSocket->connectToHost(QHostAddress::LocalHost, 5555);
    QByteArray ba = req.toUtf8();
    tcpSocket->write(ba);
    tcpSocket->waitForBytesWritten();
    tcpSocket->waitForReadyRead();
    ba = tcpSocket->readAll();
    tcpSocket->disconnectFromHost();
    tcpSocket->close();
    QString rep(ba);
    std::cout << rep.toStdString();

    a.quit();
}

我不明白我应该用 qmakecmakelists

做什么

Where do I put the QT5 clone in this project

你不会:)

5.14 之前的 Qt 安装不可重定位。这意味着一旦安装了 Qt,如果你将它移动到另一个路径,它就会崩溃。只是不要弄乱它:一旦安装,你就不用管它,它会工作得很好。

Qt源码必须编译后才能使用。我假设您下载了源代码并希望将其粘贴到项目中并以这种方式构建两个。它根本不是为那样工作而设计的。

Qt 构建需要安装其他几个工具(iirc python、ruby、perl)和其他可选依赖项才能获得完整的功能集,如果由于某种原因失败,弄清楚最初是不必要的努力。所以最好从预构建的Qt开始。

I've downloaded qt from qt and got the open source qt5. Now I cannot figure out where to put the file.

下载“qt”并没有多大意义,因为每个人都有不同的意思。如果您已经下载了源代码,请将其删除 - 您最不想做的就是立即编译 Qt。

通常,Qt 是使用安装程序安装的,因此您下载的是可执行安装程序,并将其用于 select 您要安装的 Qt 组件。在 Windows 上,选择基于 mingw 的 Qt 版本,因为如果您还没有构建环境(编译器),它也会安装它们。否则,如果你在 Windows.

上安装了 MSVC,你将使用基于 MSVC 的版本

在 Unix 上,您希望使用“本机”包管理器安装 Qt - linux 发行版附带的,或者在 MacOS 上使用 macports(真正首选)。

安装 Qt 后,您将使用 Qt Creator IDE 打开 collat​​inus 项目(它的 .pro 文件)。从那时起,一切都会“正常工作”——它会让你构建它并 运行 它产生的任何可执行目标。当然,您可以从命令行构建,但对于初学者来说,这只是一个额外的复杂层,没有必要。

在任何情况下,您引用的 .pro 文件将由 qmake 处理以生成构建项目的构建系统。 qmake 本身就是您用来 select 您构建的 Qt 版本的方法:每个 Qt 安装都有一个 qmake。因此,在 qmake 具有 运行 之后,您将 make 这样配置的构建,并且查找 Qt 头文件不会有问题。在那种情况下,qmake 的工作是设置所有内容,以便编译器将被告知在哪里可以找到 Qt。您不必手动处理它。

如果项目中有 CMakeLists.txt 文件,您可能更愿意使用它而不是 qmake,因为 cmake 是一种广泛使用的工具,具有大量可用知识在线,而 qmake 现在已过时。尽管如此,较旧的项目可能只提供需要与 qmake 一起使用的 .pro 文件,而不是 cmake.


你的问题几乎没有提供足够的细节来提供更有针对性的答案 - 请准确告诉我们你做了什么,以及你安装了哪些 Qt 元素(无论是使用 Qt Installer 程序,还是使用 unix 包管理器)。