Geany - 未定义的引用

时间:2013-09-29 15:52:11

标签: c++ compiler-construction reference undefined geany

我正在尝试使用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,一切正常。我该如何解决?

1 个答案:

答案 0 :(得分:1)

很明显,您没有将Person.cpp添加到编译命令中。然后它无法通过联系级别。

-o Person Person.cpp之后将g++ -Wall -c "%e" "%f"添加到构建选项。 毕竟编译命令应该如下所示:

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