Geany — неопределенная ссылка

Я пытаюсь скомпилировать код C ++ с Geany.

Команда компиляции: g ++ -Wall -c «% f»

Команда построения: g ++ -Wall -o «% e» «% f»

main.cpp:

#include <iostream>

#include "Person.hpp"
int main()
{
Person p1(16);

std::cout << p1.getAge();

return 0;
}

Person.hpp

class Person
{
public:

Person(int a);

void setAge(int);

int getAge() const;

private:

int age;
};

inline int Person::getAge() const
{
return age;
}

Person.cpp

#include "Person.hpp"
Person::Person(int a)
{
age = a;
}

void Person::setAge(int a)
{
age = a;
}

Ошибка:

g ++ -Wall -o «main» «main.cpp» (в каталоге:
/ home / me / projects / Test) /tmp/ccxYmWkE.o: в работе main':
main.cpp:(.text+0x15): undefined reference to
Персоны :: Person (интермедиат)»
collect2: error: ld вернул 1 состояние завершения Компиляция не удалась.

До Geany я использовал только Code :: Blocks, и все работало нормально. Как я могу это исправить?

0

Решение

Очевидно, вы не добавили Person.cpp к команде компиляции. тогда он не может пройти уровень сцепления.

добавлять -o Person Person.cpp к варианту сборки после g++ -Wall -c "%e" "%f",
Ведь команда compile должна выглядеть примерно так:

g++ -Wall -o "main" "main.cpp" -o Person Person.cpp
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]