Я пытаюсь написать программу на C ++ с использованием Atom Editor в Ubuntu 18.04. Я очень плохо знаком с использованием Linux, и весь мой предыдущий опыт написания кода был на компьютерах и IDE, которые уже были настроены для меня, так что, надеюсь, это простое исправление. Насколько я знаю, я правильно установил G CC. Выполнение which gcc g++
в Терминале возвращает
/usr/bin/gcc
/usr/bin/g++
, и я использую пакет gpp-compiler с Atom для компиляции и запуска своих программ в Atom.
Моя программа в настоящее время состоит из файла заголовка «Creature.h» с конструктором и методами
#ifndef CREATURE_H
#define CREATURE_H
class Creature {
private:
int fHealth;
public:
Creature(int Health);
virtual ~Creature(){}
void setHealth(int Health){fHealth = Health;}
int getHealth(){return fHealth}
};
#endif
с конструктором, определенным в файле реализации «Creature. cpp»:
#include "Creature.h"
Creature::Creature(int Health){
setHealth(Health);
}
Когда я затем создаю экземпляр этого класса в моей основной программе, например
#include "iostream"
#include "Creature.h"
using namespace std;
int main(){
Creature MyCreature(10);
cout<<MyCreature.getHealth()<<endl;
return 0;
}
и попытаться скомпилировать и запустить мою программу, я получаю ошибку
/tmp/cc4H4p2l.o: In function `main':
<br/>main.cpp:(.text+0x47): undefined reference to `Creature::Creature(int)'
collect2:error: ld returned 1 exit status
Из моего ограниченного понимания и проведенного мной исследования мне кажется, что либо файл Creature. cpp не скомпилирован, либо полученные объектные файлы не связаны.
В первом случае я не уверен, как скомпилировать только Существо. Файл cpp, как будто я пытаюсь сделать это в Atom, он также пытается запустить файл и завершается неудачей, поскольку очевидно, что нет основной функции. Я также попытался сделать это в терминале, выполнив g++ -c Creature.cpp
и все еще получаю ту же ошибку.
Во втором случае я не совсем уверен, что это значит или как это сделать.
Заранее спасибо за любую помощь, которую я могу получить.