Je ne peux pas obtenir ce simple morceau de code à compiler sans inclure le fichier TestClass.cpp explicitement dans mon fichier main.cpp. Qu'est-ce que je fais mal? Merci d'avance!C++ Undefined Référence (Même avec Include)
Voici le code:
TestClass.h
#ifndef TESTCLASS_H_
#define TESTCLASS_H_
class TestClass
{
public:
static int foo();
};
#endif
TestClass.cpp
#include "TestClass.h"
int TestClass::foo() { return 42; }
main.cpp
#include <iostream>
#include "TestClass.h"
using namespace std;
int main()
{
cout << TestClass::foo() << endl;
return 0;
}
Voici l'erreur:
g++ main.cpp -o main.app
/tmp/ccCjOhpy.o: In function `main':
main.cpp:(.text+0x18e): undefined reference to `TestClass::foo()'
collect2: ld returned 1 exit status
Comme c'est étrange! Je n'ai jamais rencontré ce problème auparavant. Je suis nouveau en C++ et je pense que j'ai toujours eu un IDE pour moi. Pas étonnant! Merci! –
@Scott - C'est pourquoi vous devriez passer du temps en ligne de commande;). Cela fait ressortir les choses que l'IDE cache ... –
Je ne suis pas d'accord avec le fait de renommer les fichiers. En l'état, les fichiers sont nommés d'après ce qu'ils contiennent, en cohérence avec le cas du contenu (fonction "main" et classe "TestCase"). – camh