gpt4 book ai didi

C++:体系结构 x86_64 的 undefined symbol

转载 作者:太空狗 更新时间:2023-10-29 20:26:17 25 4
gpt4 key购买 nike

我已经阅读了大多数具有此标题的其他帖子,但找不到解决方案。

我有三个文件(我知道整个程序没有任何意义,只是为了测试目的):

主要.cpp

#include "Animal.h"

Animal ape;

int main(int argc, char *argv[]){
ape.getRace();

return 0;
}

动物.h

class Animal{
public:
int getRace();
private:
int race;
};

动物.cpp

#include "Animal.h"

Animal::Animal(){
race = 0;
}

int Animal::getRace(){
race = 2;
return race;
}

当我运行 main.cpp 文件时出现此错误:

Undefined symbols for architecture x86_64:
"Animal::getRace()", referenced from:
_main in main-oTHqe4.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[Finished in 0.1s with exit code 1]

这里有什么问题吗?

最佳答案

需要将Animal.cppmain.cpp编译链接在一起,例如:

gcc main.cpp Animal.cpp

看起来你没有链接到 Animal.o(上面的命令会这样做)。

附言您还需要声明您在 Animal.cpp 中定义的默认构造函数:

class Animal{
public:
Animal(); // <=== ADD THIS
int getRace();
private:
int race;
};

关于C++:体系结构 x86_64 的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20313267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com