How i have to configure VS Code to don't get a “undefined reference” error message?
See original GitHub issueMy work environment :
EDI: Visual Studio Code
C ++ Compiler: GCC
Extensions:
Microsoft C / C ++
.run Code Runner
My source code :
main.cpp
#include <iostream>
#include "personne.h"
int main() {
personne jojo("fabien");
std::cout <<"la personne s'appelle "<<jojo.get_nom()<<" et a "
<<jojo.get_age()<<" ans "<<std::endl;
personne titi("lena",3);
std::cout <<"la personne s'appelle "<<titi.get_nom()<<" et a "
<<titi.get_age()<<" ans "<<std::endl;
}
personne.cpp
#include "personne.h"
std::string personne::get_nom() {
return nom;
}
int personne::get_age() {
return age;
}
personne::personne(std::string n){
nom=n;
age=0;
}
personne::personne(std::string n, int a) {
nom=n;
age=a;
}
personne.h
#ifndef __PERSONNE__
#define __PERSONNE__
#include <string>
class personne {
std::string nom;
int age;enter code here
public :
std::string get_nom();
int get_age();
personne(std::string);
personne(std::string, int);
};
#endif // __PERSONNE__
Errors messages :
Windows PowerShell Copyright © Microsoft Corporation. Tous droits réservés.
PS T:\VSCC++\LEssentiel> cd "t:\VSCC++\LEssentiel\chapitre 2 la programmation orientee objets\la_zim" ; if ($?) { g++ main.cpp -o main } ; if ($?) { .\main } C:\Users\Pierre\AppData\Local\Temp\ccKhfKRw.o:main.cpp:(.text+0x4e): undefined reference to
personne::personne(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)' C:\Users\Pierre\AppData\Local\Temp\ccKhfKRw.o:main.cpp:(.text+0x72): undefined reference to
personne::get_age()’ C:\Users\Pierre\AppData\Local\Temp\ccKhfKRw.o:main.cpp:(.text+0x87): undefined reference topersonne::get_nom[abi:cxx11]()' C:\Users\Pierre\AppData\Local\Temp\ccKhfKRw.o:main.cpp:(.text+0x137): undefined reference to
personne::personne(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)’ C:\Users\Pierre\AppData\Local\Temp\ccKhfKRw.o:main.cpp:(.text+0x15b): undefined reference topersonne::get_age()' C:\Users\Pierre\AppData\Local\Temp\ccKhfKRw.o:main.cpp:(.text+0x170): undefined reference to
personne::get_nomabi:cxx11’ collect2.exe: error: ld returned 1 exit status PS T:\VSCC++\LEssentiel\chapitre 2 la programmation orientee objets\la_zim>
Issue Analytics
- State:
- Created 5 years ago
- Comments:8 (1 by maintainers)
Hello @Pierre8r ,
The errors are due to
personne.cpp
not being compiled and linked withmain.cpp
. As far as I can tell, your current run command only compilesmain.cpp
.main.cpp
includes thepersonne.h
file but during linkingg++
can’t find the definitions of the class functions because they are inpersonne.cpp
.To fix this change your run command for
cpp
incode-runner.executorMap
to:This command will compile and link all your
.cpp
files in the directory, and then run the compiled program.If the above command doesn’t work, then also attach your
settings.json
file in your comment so that I can better figure out what’s going wrong.Thanks @babu-thomas ! Closing this now. @Pierre8r , Feel free to reopen or create new issue if you have question.