C++ 中的重复符号__ZN4ArmeC1Ev错误

duplicate symbol __ZN4ArmeC1Ev error in c++

本文关键字:ZN4ArmeC1Ev 错误 符号 C++      更新时间:2023-10-16

我是Qt上的C ++编程新手。我上了两堂课《人格》和《武装》。我有 5 个文件 Personnage.h、personnage.cpp、Arme.h 和 Arme.cpp

阿姆·

#ifndef ARME_H
#define ARME_H
#include<iostream>
class Arme
{
public:
Arme();
Arme(int m_idArme,std::string m_nomArme);
void armeAffich() const;
public:
int idArme;
std::string nomArme;
};
#endif // ARME_H

武装.cpp

#include "Arme.h"
#include<string>
#include<iostream>
using namespace std;
Arme::Arme():idArme(0),nomArme(0)
{
}
Arme::Arme(int m_idArme,string m_nomArme)
{
idArme=m_idArme;
nomArme=m_nomArme;
}
void Arme::armeAffich() const
{
cout<<"identifiant d'arme"<<idArme<<endl;
cout<<"nom d'arme"<<nomArme<<endl;
}

Personnage.h

#ifndef PERSONNAGE_H
#define PERSONNAGE_H
#include "Arme.h"
class Personnage
{
Personnage(std::string nom,std::string prenom);
Personnage();
~Personnage();
void affichPers() const;
public:
std::string nomPers;
std::string prenomPers;
Arme *arme;
};
#endif // PERSONNAGE_H

人物.cpp

#include "Arme.h"
#include<string>
#include<iostream>
using namespace std;
Arme::Arme():idArme(0),nomArme(0)
{
}
Arme::Arme(int m_idArme,string m_nomArme)
{
idArme=m_idArme;
nomArme=m_nomArme;
}
void Arme::armeAffich() const
{
cout<<"identifiant d'arme"<<idArme<<endl;
cout<<"nom d'arme"<<nomArme<<endl;
}

在主.cpp文件中,我放置了两个仅用于编译的指令。

#include"Personnage.h"
#include<iostream>
using namespace std;
int main()
{
    cout<<"Hello word!";
    return 1;
}

当我编译时,我收到以下错误:

duplicate symbol __ZN4ArmeC1Ev in:
    Arme.o
    Personnage.o
duplicate symbol __ZN4ArmeC2Ev in:
    Arme.o
    Personnage.o
duplicate symbol __ZN4ArmeC1EiSs in:
    Arme.o
    Personnage.o
duplicate symbol __ZN4ArmeC2EiSs in:
    Arme.o
    Personnage.o
duplicate symbol __ZNK4Arme10armeAffichEv in:
    Arme.o
    Personnage.o
ld: 5 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [ExempleClasses] Error 1
18:55:46: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project ExempleClasses (kit: Desktop Qt 5.2.0 clang 64bit)
When executing step 'Make'

请帮忙吗?

在你的帖子中:

人物.cpp

#include "Arme.h"
#include<string>
#include<iostream>
using namespace std;
Arme::Arme():idArme(0),nomArme(0)
{
}

你肯定不想在《人物.cpp》中重复Arme::Arme吗?