继承生成文件C++未定义的符号首先被引用
inheritance makefile C++ undefined symbol first referenced
我遇到编译问题。以下是文件和继承。
dateType.h,dateTypeImp.cpp:定义并实现dateType类
addressType.h,addressTypeImp.cpp:定义并实现addressType类
personType.h,personTypeImp.cpp:定义并实现personType类
extPersonType.h,extPersonTypeImp.cpp:定义并实现extPersonType类
addressBookType.h,addressBookTypeImp.cpp:定义并实现addressBookType类
以下是继承并具有关系
extPersonType"扩展"(继承)personType类,并且它还"具有"每个addressType和dateType的一个对象
addressBookType类"有"500个extPersonType类型的对象
(如果需要的话,我可以复制粘贴.h文件)
因此,extPersonType.h中包含"dateType.h"、"addressType.h"answers"personType.h"的#include语句。addressBookType.h中有#include"extPersonType/h"。
我有以下Makefile:
all: main
personTypeImp.o: personTypeImp.cpp
g++ -c -Wall personTypeImp.cpp
dateTypeImp.o: dateTypeImp.cpp
g++ -c -Wall dateTypeImp.cpp
addressTypeImp.o: addressTypeImp.cpp
g++ -c -Wall addressTypeImp.cpp
addressBookTypeImp.o: addressBookTypeImp.cpp
g++ -c -Wall addressBookTypeImp.cpp
main.o: main.cpp
g++ -c -Wall main.cpp
main: main.o addressBookTypeImp.o addressTypeImp.o dateTypeImp.o personTypeImp.o
g++ -Wall main.o addressBookTypeImp.o addressTypeImp.o dateTypeImp.o personTypeImp.o -o main
clean:
rm -f *.o *~ main
所有的.o行都编译得没有错误。最后一个"主"编译给出了这个错误:
make
g++ -c -Wall main.cpp
g++ -c -Wall addressBookTypeImp.cpp
g++ -c -Wall addressTypeImp.cpp
g++ -c -Wall dateTypeImp.cpp
g++ -c -Wall personTypeImp.cpp
g++ -Wall main.o addressBookTypeImp.o addressTypeImp.o dateTypeImp.o personTypeImp.o -o main
Undefined first referenced
symbol in file
extPersonType::getStatus() const addressBookTypeImp.o
extPersonType::isLastName(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) constaddressBookTypeImp.o
列出了extPersonType中的更多函数。
想知道可能是什么错误。
错误消息的关键部分是:
未定义的符号
extPersonType::...
。
基本上,类extPersonType
的符号不是程序的一部分。如果你查看makefile,你会看到
extPersonTypeImp.o: extPersonTypeImp.cpp
g++ -c -Wall extPersonTypeImp.cpp
缺少,并且您需要将extPersonType.o
作为添加到链接器命令中
g++ -Wall main.o addressBookTypeImp.o addressTypeImp.o dateTypeImp.o personTypeImp.o extPersonTypeImp.o -o main
那么,您是否真的在某个地方编写了这些函数,或者只是简单地声明了它们?如果它们确实有实体,在哪个文件中,它们是内联的吗?
- 未定义的引用,尽管存在符号,但 std::experimental::可选
- 为什么在引用指针时将 const 放在 & 符号的左侧有效,而在右侧则无效?
- 对符号'_ZN3ros10NodeHandle9subscribeERNS_16SubscribeOptionsE'的未定义引用
- 函数 _main (OPENGL C++) 中引用的未解析的外部符号 ________
- 对符号'_ZN3pcl7console5printENS0_15VERBOSITY_LEVELEPKcz'的未定义引用
- 函数 LNK2019 "int __cdecl __scrt_common_main_seh(void)" 中引用的未解析外部符号主错误 (?__scrt_common_main_seh@@YAHXZ
- 如何引用符号表中的值?
- 函数_wmain中引用未解析的外部符号_RasSetEntryPropertiesW@24
- 输入迭代器是否可以仅在赋值的右侧符号上取消引用?
- 未定义的引用,即使库正在链接并且它包含正确的符号
- C++ 链接器错误 LNK 2019 函数中引用的未解析的外部符号
- 未定义的符号:符号引用错误.没有输出写入主
- 符号引用错误
- C++虚拟析构函数和符号引用错误
- 为什么在 G++ 中编译时会出现符号引用错误
- 符号引用调用模板类的成员函数时出现的错误
- 如何解决libmysqlclient_r.so符号引用链接错误
- 链接器用内存地址替换符号引用
- 符号引用错误
- LNK2019在功能中未解决的外部符号引用