【发布时间】:2021-06-23 16:53:41
【问题描述】:
这是我第一次使用 C++,所以请放轻松。我有大约 7000 小时的 Python 经验,所以我并非完全一无所知。我正在尝试阅读为此处找到的 Colllatinus 软件编写的代码。 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 下载了qt 并获得了开源qt5。现在我不知道把文件放在哪里。我已经尝试将它放在与上述代码相同的文件夹中。我也尝试放入标记为src 的文件夹。在src 文件夹中,有许多使用 QT 的文件,但似乎这些文件应该从 QT 文件夹中取出。例如,在this 文件中,我们在第 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();
}
我不明白我应该如何处理 qmake 和 cmakelists
【问题讨论】:
-
您收到的“错误消息”是警告。只是运行的东西。 Cmd-R。看看会发生什么。
-
在套件的 Qt Creator 配置中(
Cmd-`,然后是套件窗格,套件选项卡),选择您正在使用的套件,确保 C 和 C++ 编译器来自/Library/Developer等. 很可能已经检测到这些编译器(请参阅编译器选项卡),因此您只需在该套件中选择它们即可。