未定义的符号:符号引用错误.没有输出写入主
Undefined symbol: Symbol referencing errors. No output written to main
有以下程序:
#include <iostream>
#include <string>
using namespace std;
class Record
{
public:
static Record* GetInstance(string name);
void printName();
private:
Record(string name);
string name_;
static Record *record;
};
Record::Record(string name)
:name_(name)
{
}
Record*
Record::GetInstance(string name)
{
if(record == NULL) {
record = new Record(name);
}
return record;
}
void
Record::printName()
{
cout << name_ << endl;
}
int main()
{
Record* record1 = Record::GetInstance("sellers");
record1->printName();
Record* record2 = Record::GetInstance("customers");
record2->printName();
}
我正在编译并链接到:
g++ -g -c -Wall main.cpp
g++ -g -Wall main.o -o main
编译完成且没有错误(第一个命令)。但是链接给出了此错误:
Undefined first referenced
symbol in file
Record::record main.o
ld: fatal: Symbol referencing errors. No output written to main
collect2: ld returned 1 exit status
想知道如何纠正这一点。
您需要在某处定义变量,即
Record *Record::record;
相关文章:
- Clang 给了我符号更改的警告,但代码仍然产生正确的输出
- 来自无符号字符缓冲区的虚拟输出
- 代码输出随机符号,我不确定出了什么问题
- 我没有得到一个数字作为输出,而是一个表情符号
- C ++中的输出字符数组会产生奇怪的符号
- 为什么printf和cout为此无符号int提供了不同的输出
- Linux Ubuntu 中的文件内输出 unicode 符号
- 为什么尽管变量是无符号整数,但该程序仍以 -25 给出输出
- 将怪异的符号打印到输出文件C
- 当程序与符号名称一起崩溃时,输出呼叫堆栈
- 程序将怪异的符号打印到输出文件C
- 未定义的符号:符号引用错误.没有输出写入主
- 无符号长长 - 奇怪的输出
- 未符号char响应[maxmem]的输出;`
- C:atoi()对未符号字符的输出输出
- gcc 预处理的表单哈希符号 + 数字"# 1"输出行是什么意思?
- 为什么我有一个"="符号输出和 2 个笑脸而不是正确的输出?C++
- 为什么当我放置定点符号时,我的输出是 0.00
- C++字符返回输出符号
- 未定义的符号 输出数组 opencv fedora.