0

我正在尝试用 Geany 编译 C++ 代码。

编译命令:g++ -Wall -c "%f"

构建命令:g++ -Wall -o "%e" "%f"

主.cpp:

#include <iostream>

#include "Person.hpp"

int main()
{
    Person p1(16);

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

    return 0;
}

人.hpp

class Person
{
public:

    Person(int a);

    void setAge(int);

    int getAge() const;

private:

    int age;
};

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

个人.cpp

#include "Person.hpp"

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

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

错误:

g++ -Wall -o "main" "main.cpp" (in directory: /home/me/projects/Test) /tmp/ccxYmWkE.o: In function main': main.cpp:(.text+0x15): undefined reference toPerson::Person(int)' collect2: error: ld returned 1退出状态编译失败。

在 Geany 之前,我只使用 Code::Blocks 并且一切正常。我该如何解决?

4

1 回答 1

1

很明显你没有添加Person.cpp到编译命令中。那么它就无法通过联动级别。

在. -o Person Person.cpp_ g++ -Wall -c "%e" "%f"毕竟编译命令应该如下所示:

g++ -Wall -o "main" "main.cpp" -o Person Person.cpp
于 2013-09-29T16:24:51.770 回答