C++ g++;ld:找不到架构x86_64的符号-没有更具体的错误消息
我已经努力解决这个问题好几个小时了。。。 我有一个头文件、实现文件和驱动程序文件。 标题: 实施:C++ g++;ld:找不到架构x86_64的符号-没有更具体的错误消息,c++,linker,g++,ld,C++,Linker,G++,Ld,我已经努力解决这个问题好几个小时了。。。 我有一个头文件、实现文件和驱动程序文件。 标题: 实施: int PhoneNumber::getnLive() { return nlive; } int PhoneNumber::getnText() { return ntext; } int PhoneNumber::getLive() { return live; } int PhoneNumber::getText() { return text; } 错误消息: ha
int PhoneNumber::getnLive()
{
return nlive;
}
int PhoneNumber::getnText()
{
return ntext;
}
int PhoneNumber::getLive()
{
return live;
}
int PhoneNumber::getText()
{
return text;
}
错误消息:
habins-mbp:CS2000 Habin$ g++ -o PhoneNumber PhoneNumber.cpp PhoneNumberDriver.cpp
Undefined symbols for architecture x86_64:
"PhoneNumber::live", referenced from:
PhoneNumber::getLive() in PhoneNumber-f64d4d.o
PhoneNumber::addLive() in PhoneNumber-f64d4d.o
"PhoneNumber::text", referenced from:
PhoneNumber::getText() in PhoneNumber-f64d4d.o
PhoneNumber::addText() in PhoneNumber-f64d4d.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
如果我使用g++-c,它编译意味着代码可以工作。似乎静态int-live
给我带来了很多麻烦。
10个多小时来一直试图解决这个问题,但都没有结果。我要把我的电脑劈成两半了
请帮助我您应该在实现部分定义所有静态成员变量
int PhoneNumber::live;
int PhoneNumber::text;
int PhoneNumber::MaxPhones;
嗯,那么你在实现部分定义变量,在头部分定义函数及其定义?这里已经回答了。定义?如何定义变量?我知道如何声明变量。非常新的编程,谢谢你的帮助!让它发挥作用。我只需要添加这些行。我不敢相信我在这个愚蠢的错误上花了这么多时间,但谢谢大家。
int PhoneNumber::live;
int PhoneNumber::text;
int PhoneNumber::MaxPhones;