2016-12-09 53 views
0

我想在Qt C++中編譯一些相對簡單的代碼,但我收到以下鏈接器錯誤,無法找出問題所在。在簡單的Qt C++應用程序中的鏈接器錯誤

main.obj:-1: erreur : LNK2019: unresolved external symbol "class QUuid __cdecl uuid::fromString(class QString const &)" ([email protected]@@[email protected]@[email protected]@@Z) referenced in function _main

其他文件編譯正常,但不知這兩個(uuid.h/uuid.cpp)有這樣的錯誤。

此外,如果這是相關的,如果我在Qt的編輯器「uuid.cpp」單擊鼠標右鍵,選擇「編譯」,我得到這個錯誤,也不會發生其他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(); 
} 
+0

構建文件夾中的makefiles已過期:這就是爲什麼您無法將uuid.cpp編譯到uuid.obj中的原因。在項目上重新運行qmake或理想地移除構建文件夾然後構建它。這個問題缺乏'.pro'文件。 –

+0

@KubaOber,是的,謝謝你刪除生成文件夾,特別是製作文件,解決方案就像解釋那裏 - http://stackoverflow.com/a/21933761/561309 –

回答

0

卸下生成文件夾,和P中關閉make文件,解決問題。從Qt Creator運行Clean命令還不夠。

相關問題