VS Код C ++ OOP не работает Ма c ОС High Sierra - PullRequest
0 голосов
/ 31 марта 2020

Привет, ребята, я новичок в коде и не могу найти решение использовать объектно-ориентированное программирование

, когда я создаю .h файл для вызова функции объекта, я получаю ошибку

123MacBook-Pro-de-Rogerio: life DJMatrix $ cd "/ Users / DJMatrix / Documents / Classes / c ++ / life /" && g ++ main.cpp -o main && "/ Users / Dtrix / Documents / Classes / c ++ / life / "main
Undefined symbols for architecture x86_64:
  "Life :: tryAgain ()", referenced from:
      _main in main-ea3ce4.o
ld: symbol (s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Print

основной. cpp:

#include <iostream>
#include "life.h"

using namespace std;

int main()
{
    Life life;
    life.tryAgain();
    return 0;
}

life.h:

#include <iostream>
using namespace std;

class Life
{
public:
    bool sucess;
  void tryAgain();
  void improve();
};

life. cpp:

#include "life.h"

void Life::tryAgain()
{
  cout << "Trying again!!!" << endl;
}

void Life::improve()
{
  cout << "Improve !!" << endl;
}

1 Ответ

1 голос
/ 31 марта 2020

Из того, что я вижу с терминала VSCode, компилируется только main.cpp. Объектный файл для life.cpp не связывается при создании окончательного двоичного файла, поэтому он жалуется на отсутствие символа Life::tryAgain().

Это зависит от того, вызываете ли вы компилятор вручную или используете Makefiles или позволить VSCode сделать все это для вас; независимо от того, что команда компиляции должна выглядеть так:

g++ -o main life.cpp main.cpp

...