Как я должен настроить VS Code, чтобы не получить сообщение об ошибке «неопределенная ссылка»? - PullRequest
0 голосов
/ 05 октября 2018

Моя рабочая среда:

EDI: код Visual Studio

C ++ Компилятор: GCC

Расширения:

Microsoft C / C ++

.run Code Runner

Мой исходный код:

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__

Сообщения об ошибках:

Windows PowerShell Copyright (C) Microsoft Corporation.Tous droits réservés.

PS T: \ VSCC ++ \ LEssentiel> cd "t: \ VSCC ++ \ LEssentiel \ chapitre 2 la obets ориентированных на программирование объектов \ la_zim \";if ($?) {g ++ main.cpp -o main};if ($?) {. \ main} C: \ Users \ Pierre \ AppData \ Local \ Temp \ ccKhfKRw.o: main.cpp :(. text + 0x4e): неопределенная ссылка на 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): неопределенная ссылка на personne::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, std:: allocator>, int) 'C: \ Users \ Pierre \ AppData \ Local \ Temp \ ccKhfKRw.o: main.cpp :(. text + 0x15b): неопределенная ссылка на personne::get_age()' C:\Users\Pierre\AppData\Local\Temp\ccKhfKRw.o:main.cpp:(.text+0x170): undefined reference to personne :: get_nomabi: cxx11' collect2.exe: ошибка: ld вернул 1 состояние выхода PS T: \ VSCC ++ \ LEssentiel \ chapitre 2 la obets Objectives для программирования \ la_zim>

Ответы [ 2 ]

0 голосов
/ 15 августа 2019

У меня такая же проблема, и, похоже, ошибка компоновщика.Вам следует использовать терминал, встроенный в vsc, и собрать свой файл, используя строку g++ -g -o main main.cpp personne.cpp
, затем просто выполнить исполняемый файл с именем main.Вам также следует попробовать добавить файл personne.cpp в файл tasks.json

0 голосов
/ 05 октября 2018

Вам нужно скомпилировать и li k с personne.cpp.Добавьте его в свой проект, чтобы в командной строке были указаны все ваши исходные файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...