C++ linker commande a échoué avec le code de sortie 1
Source de MaxSumOfSubArray.cpp
:
#include <iostream>
namespace MaxSumOfSubArray {
void run() {
std::cout << "hey hey";
}
}
Source de main.cpp
:
#include "MaxSumOfSubArray.cpp"
int main(int argc, const char * argv[])
{
MaxSumOfSubArray::run();
return 0;
}
Mais j'obtiens l'erreur:
duplicate symbol __ZN16MaxSumOfSubArray3runEv in:
/Users/li.tonghui/Library/Developer/Xcode/DerivedData/CppChallenges-eobfuxlkqjfgebendxkoqbsvsbmr/Build/Intermediates/CppChallenges.build/Debug/CppChallenges.build/Objects-normal/x86_64/main.o
/Users/li.tonghui/Library/Developer/Xcode/DerivedData/CppChallenges-eobfuxlkqjfgebendxkoqbsvsbmr/Build/Intermediates/CppChallenges.build/Debug/CppChallenges.build/Objects-normal/x86_64/MaxSumOfSubArray.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Pourquoi j'obtiens cette erreur et comment la résoudre?
- Voir ma réponse à une question connexe ici: stackoverflow.com/questions/18579340/...
Vous devez vous connecter pour publier un commentaire.
Vous ressemble inclure MaxSumOfSubArray.cpp dans main.cpp ET essayer de le compiler. Faire l'un ou l'autre, pas les deux...
Astuce: vous avez normalement pas inclure un .rpc en another.cpp (vous comprennent .h fichiers)
vous essayez de compiler et dans votre ligne de commande
qui est faux puisque vous comprend déjà
MaxSumOfSubArray.cpp
dans main.cpp vous n'avez pas besoin de spécifier de nouveau.