2016-12-09 25 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

他のファイルはうまくコンパイルされますが、これら2つ(uuid.h/uuid.cpp)にはこのエラーがあります。また、他のcppファイルに対して発生しません

また、私はQtのエディタで「uuid.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

ビルドフォルダ内のメイクファイルは古くなっています。そのため、uuid.cppをuuid.objにコンパイルできません。プロジェクトでqmakeを再実行するか、理想的にはビルドフォルダを削除してビルドします。この質問は '.pro'ファイルなしでは不十分です。 –

+0

@KubaOber、はい、ビルドフォルダを削除していただきありがとうございます。特にmakeファイルは、そこに説明されている解決策でした - http://stackoverflow.com/a/21933761/561309 –

答えて

0

ビルドフォルダを削除すると、pで関節のファイルを作る、問題を修正しました。 Qt CreatorからCleanコマンドを実行するだけでは十分ではありませんでした。

関連する問題