c – 为什么这给了我“对构造函数和析构函数的未定义引用”?

前端之家收集整理的这篇文章主要介绍了c – 为什么这给了我“对构造函数和析构函数的未定义引用”?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下几段代码

Leomedia.h

#include "Music@R_502_338@Datter.h"

#ifndef LEOMEDIA_H
#define LEOMEDIA_H

namespace Leomedia
{
    typedef enum
    {
        read,write
    } FileMode;
}

#endif // LEOMEDIA_H

Music@R_502_338@Datter.h

#ifndef MUSIC@R_502_338@DATTER_H
#define MUSIC@R_502_338@DATTER_H

#include "Leomedia.h"
#include <string>

/**
* @R_502_338@DATTER
* @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 Music@R_502_338@Datter
        {
            public:
                Music@R_502_338@Datter(std::string fileName,AudioFileType type,FileMode mode);
                virtual ~Music@R_502_338@Datter();

            private:
                std::string md_fileName;
                AudioFileType md_fileType;
                FileMode md_fileMode;
        };
    }

    #endif // MUSIC@R_502_338@DATTER_H

Music@R_502_338@Datter.cpp

#include "Music@R_502_338@Datter.h"
#include <string>

Leomedia::Music@R_502_338@Datter::Music@R_502_338@Datter(std::string fileName,FileMode mode)
{
    this -> md_fileName = fileName;
    this -> md_fileType = type;
    this -> md_fileMode = mode;
}

Leomedia::Music@R_502_338@Datter::~Music@R_502_338@Datter()
{
    //dtor
}

@R_502_338@DatterTest.cpp

#include <iostream>
#include "Leomedia.h"
#include <string>
using namespace std;

int main()
{
    Leomedia::Music@R_502_338@Datter @R_502_338@("troll",Leomedia::mp3,Leomedia::read);
    return 0;
}

当我编译@R_502_338@DatterTest时,我收到以下错误

未定义引用Leomedia :: Music@R_502_338@Datter :: Music@R_502_338@Datter(std :: string,Leomedia :: AudioFileType,Leomedia :: FileMode)’
未定义的引用Leomedia :: Music@R_502_338@Datter :: ~Music@R_502_338@Datter()’
未定义的引用Leomedia :: Music@R_502_338@Datter :: ~Music@R_502_338@Datter()’

所有文件都在同一目录中.我正在使用mingw 4.4.1

有人可以帮我弄这个吗?它使我无法理解.

解决方法

你没有给出你的编译命令,但我怀疑它缺少Music@R_502_338@Datter.cpp.

应该是这样的

g++ -o @R_502_338@DatterTest @R_502_338@DatterTest.cpp Music@R_502_338@Datter.cpp

猜你在找的C&C++相关文章