C++ 架构x86_64的未定义符号-头文件中的显示函数
可能重复:C++ 架构x86_64的未定义符号-头文件中的显示函数,c++,architecture,undefined,symbols,C++,Architecture,Undefined,Symbols,可能重复: 我知道这个问题一直都有答案,但我还没有找到一个解决我的具体例子。以下是全部错误: g++ main.cpp Undefined symbols for architecture x86_64: "Board::display()", referenced from: _main in cc7hPZpy.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status
我知道这个问题一直都有答案,但我还没有找到一个解决我的具体例子。以下是全部错误:
g++ main.cpp
Undefined symbols for architecture x86_64:
"Board::display()", referenced from:
_main in cc7hPZpy.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
我只是想从我的Board类中提取这个显示函数。以下是主要内容:
#include "Board.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout << "Some Asian Game" << endl;
Board base;
base.display();
//this is creating the error
//commenting it out compiles, but obviously does not do what i want.
return 0;
}
#包括“Board.h”
#包括
#包括
使用名称空间std;
int main()
{
应该是这样的
g++ main.cpp board.cpp
您没有编译board.cpp
,因此符号不会导出
此外:
有帮助吗?例如,你确定你正在编译board.cpp并链接到目标文件吗?(刚刚注意到你使用的命令行,不,你没有)啊,是的。我有时很特别。谢谢。现在想知道为什么它会出现seg故障:/@JordanWayneCrabb这是因为
vector(15)
不起任何作用。可以使用行=向量(16);
代替(注意16而不是15)或初始值设定项列表。@JordanWayneCrabb请参见编辑后的答案。就是这样,我如何给你信用/尊重/道具,不管这里叫什么。
void Board::display()
{
for(int i=0;i<16;i++)
{
for(int i2=0;i2<16;i2++)
{
cout << rows[i].cells[i2].getState();
}
}
}
g++ main.cpp board.cpp
Board()
{
vector<Row> (15);
}
Board() : rows(16)
{
}