Iは、次のコード片を有する:これはなぜ私に "コンストラクタとデストラクタへの未定義の参照"を与えていますか?
Leomedia.h
#include "MusicMetaDatter.h"
#ifndef LEOMEDIA_H
#define LEOMEDIA_H
namespace Leomedia
{
typedef enum
{
read,
write
} FileMode;
}
#endif // LEOMEDIA_H
MusicMetaDatter.h
#ifndef MUSICMETADATTER_H
#define MUSICMETADATTER_H
#include "Leomedia.h"
#include <string>
/**
* METADATTER
* @Version 1.0.0a
* @Author: Sergio Andrés Ibañez (Leonnears)
* @Twitter: Leonnears
* @Package: Leomedia
*/
namespace Leomedia
{
typedef enum
{
mp3,
m4a,
flac,
ape,
wavPack,
aiff,
wav,
ogg,
tta
} AudioFileType;
class MusicMetaDatter
{
public:
MusicMetaDatter(std::string fileName, AudioFileType type, FileMode mode);
virtual ~MusicMetaDatter();
private:
std::string md_fileName;
AudioFileType md_fileType;
FileMode md_fileMode;
};
}
#endif // MUSICMETADATTER_H
MusicMetaDatter.cpp
#include "MusicMetaDatter.h"
#include <string>
Leomedia::MusicMetaDatter::MusicMetaDatter(std::string fileName, AudioFileType type, FileMode mode)
{
this -> md_fileName = fileName;
this -> md_fileType = type;
this -> md_fileMode = mode;
}
Leomedia::MusicMetaDatter::~MusicMetaDatter()
{
//dtor
}
MetaDatterTest.cpp
01 Leomedia :: MusicMetaDatter :: MusicMetaDatter(STD ::文字列、Leomedia :: AudioFileType、Leomedia ::にFileMode「) に未定義の参照に未定義の参照:私は、私は次のエラーを取得MetaDatterTestコンパイル
#include <iostream>
#include "Leomedia.h"
#include <string>
using namespace std;
int main()
{
Leomedia::MusicMetaDatter meta("troll", Leomedia::mp3, Leomedia::read);
return 0;
}
Leomedia :: MusicMetaDatter ::〜MusicMetaDatter() ' Leomedia :: MusicMetaDatter ::〜MusicMetaDatter()の定義されていない参照
すべてのファイルは同じディレクトリにあります。私はmingwを使用しています。4.4.1
誰か助けてもらえますか?それは私の理解を超えて私を唖然とさせました。
。どのコマンドが正確に実行されているかを確認するにはどうすればよいですか? –
いいえ、おそらく両方のファイルがプロジェクトに追加されていることを確認する必要がありますか?私はそれを使用したことがない... –
それはそれだった。私はプロジェクトで彼らと一緒に作業していませんでしたが、プロジェクトを作ってそこに追加して問題を解決しました。あなたの助けに感謝します。 –