我正在尝试使用Geany编译C ++代码。
编译命令: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 :: Person(int)'中 collect2:错误:ld返回1退出状态编译失败。
在Geany之前,我只使用了Code :: Blocks,一切正常。我该如何解决?
答案 0 :(得分:1)
很明显,您没有将Person.cpp
添加到编译命令中。然后它无法通过联系级别。
在-o Person Person.cpp
之后将g++ -Wall -c "%e" "%f"
添加到构建选项。
毕竟编译命令应该如下所示:
g++ -Wall -o "main" "main.cpp" -o Person Person.cpp