c++ - Geany - undefined reference

标签 c++ compiler-construction reference undefined geany

我正在尝试使用 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 exit status Compilation failed.

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

最佳答案

很明显您没有将Person.cpp 添加到编译命令中。则不能通过联动层。

g++ -Wall -c "%e""%f" 之后的构建选项中添加 -o Person Person.cpp。 毕竟编译命令应该像下面这样:

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

关于c++ - Geany - undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19080005/

相关文章:

c++ - 检测互联网 V. 本地局域网连接

java - JNI : Invoke JAVA method from C++, 返回对象、引用和 GC

c - 为什么目标文件被分成 8 列,每列 4 个十六进制数的网格?

c++ - Linux ELF 32位加载

C++ 跟踪原始类型值的变化

c# - 在 C# 中列出 <int>

C++多态、虚函数错误

c++ - 交叉编译器 raspberry pi 不完整类型,而 native 编译器工作

c++ - 如何通过接口(interface)将仿函数分配给函数对象?

c - 用编译语言编写的编译器如何处理错误?