gpt4 book ai didi

c++ - 体系结构 x86_64 : and cannot find the reason 的 undefined symbol

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:32 24 4
gpt4 key购买 nike

我有我的 main.cc,它是

#include <iostream>
#include "Sally.h"
using namespace std;

int main(){
Sally sallyObject;
sallyObject.printCrap();

}

和头文件,Sally.h,这是

#ifndef SALLY_H
#define SALLY_H

class Sally{
public:
Sally();
void printCrap();
protected:
private:
};

#endif //BURRITO_H

和 Sally.cc,这是

#include "Sally.h"
#include <iostream>
using namespace std;

Sally::Sally()
{
}

void Sally::printCrap(){
cout << "did someone say steak?" << endl;
}

这三个文件位于同一目录中。当我键入 g++ main.cc 时,我无法构建代码。它说

Undefined symbols for architecture x86_64:
"Sally::printCrap()", referenced from:
_main in main-16cd07.o
"Sally::Sally()", referenced from:
_main in main-16cd07.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

有人知道为什么会这样吗?

最佳答案

我认为您需要将所有 .cc 文件一起编译,因为 sally.cc 未包含在内。

g++ main.cc sally.cc

应该可以解决问题。

包含 dot-h 文件使您的类的定义对所有人可见(包括 main.cc),但代码的实际主体在未编译的情况下是看不到的。

关于c++ - 体系结构 x86_64 : and cannot find the reason 的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58795204/

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