简单 Qt C++ 应用程序中的链接器错误
Linker error in simple Qt C++ application
我正在尝试在 Qt C++ 中编译一些相对简单的代码,但我收到以下链接器错误并且无法弄清楚问题所在。
main.obj:-1: erreur : LNK2019: unresolved external symbol
"class QUuid __cdecl uuid::fromString(class QString const &)"
(?fromString@uuid@@YA?AVQUuid@@ABVQString@@@Z) referenced in function _main
其他文件编译正常,但不知何故这两个 (uuid.h/uuid.cpp) 有这个错误。
此外,如果相关,如果我在 Qt 编辑器中右键单击 "uuid.cpp" 和 select "Compile",我会收到此错误,其他 cpp 也不会发生此错误文件:
Start : "C:\Qt\Tools\QtCreator\bin\jom.exe" -f Makefile.Debug debug/uuid.obj
Error: Target debug/uuid.obj doesn't exist.
知道问题出在哪里吗?
uuid.h
#ifndef UUID_H
#define UUID_H
#include <stable.h>
namespace uuid {
QUuid fromString(const QString& s);
}
#endif // UUID_H
uuid.cpp
#include <stable.h>
#include "uuid.h"
namespace uuid {
QUuid fromString(const QString& s) {
// ....
}
}
main.cpp
#include <stable.h>
#include "uuid.h"
int main(int argc, char *argv[]) {
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QUuid test = uuid::fromString("f601c97e494a46a7b393bb0366e679a1");
return app.exec();
}
删除构建文件夹,尤其是 make 文件,解决了这个问题。 运行 Qt Creator 的清理命令还不够。
我正在尝试在 Qt C++ 中编译一些相对简单的代码,但我收到以下链接器错误并且无法弄清楚问题所在。
main.obj:-1: erreur : LNK2019: unresolved external symbol "class QUuid __cdecl uuid::fromString(class QString const &)" (?fromString@uuid@@YA?AVQUuid@@ABVQString@@@Z) referenced in function _main
其他文件编译正常,但不知何故这两个 (uuid.h/uuid.cpp) 有这个错误。
此外,如果相关,如果我在 Qt 编辑器中右键单击 "uuid.cpp" 和 select "Compile",我会收到此错误,其他 cpp 也不会发生此错误文件:
Start : "C:\Qt\Tools\QtCreator\bin\jom.exe" -f Makefile.Debug debug/uuid.obj Error: Target debug/uuid.obj doesn't exist.
知道问题出在哪里吗?
uuid.h
#ifndef UUID_H
#define UUID_H
#include <stable.h>
namespace uuid {
QUuid fromString(const QString& s);
}
#endif // UUID_H
uuid.cpp
#include <stable.h>
#include "uuid.h"
namespace uuid {
QUuid fromString(const QString& s) {
// ....
}
}
main.cpp
#include <stable.h>
#include "uuid.h"
int main(int argc, char *argv[]) {
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QUuid test = uuid::fromString("f601c97e494a46a7b393bb0366e679a1");
return app.exec();
}
删除构建文件夹,尤其是 make 文件,解决了这个问题。 运行 Qt Creator 的清理命令还不够。