我试图在Mac的Netbeans C ++中做一个项目,当我为名为servicio的类做一个简单的构造函数时,编译器向我显示以下错误:
"/Applications/Xcode.app/Contents/Developer/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
"/Applications/Xcode.app/Contents/Developer/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-MacOSX/medicos
mkdir -p dist/Debug/GNU-MacOSX
g++ -o dist/Debug/GNU-MacOSX/medicos build/Debug/GNU-MacOSX/agenda.o build/Debug/GNU-MacOSX/cita.o build/Debug/GNU-MacOSX/contenedor.o build/Debug/GNU-MacOSX/doctor.o build/Debug/GNU-MacOSX/fecha.o build/Debug/GNU-MacOSX/main.o build/Debug/GNU-MacOSX/objetoBase.o build/Debug/GNU-MacOSX/paciente.o build/Debug/GNU-MacOSX/padecimiento.o build/Debug/GNU-MacOSX/servicio.o
Undefined symbols for architecture x86_64:
"vtable for servicio", referenced from:
servicio::servicio(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in servicio.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [dist/Debug/GNU-MacOSX/medicos] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
Run Code Online (Sandbox Code Playgroud)
我不太确定问题可能是什么,我是编程的初学者,所以对此我不太了解,谢谢您的帮助。
链接器输出错误,因为您的函数的定义不存在。您声明了3个函数,但仅定义了一个构造函数。删除虚拟虚拟机将有所帮助,因为链接程序随后将不使用这些功能。当它们是虚拟的时,链接器将使用它们来创建vtable。如果在程序中使用这些功能而未定义它们,则会返回错误。
如果您使用 QT,在绝大多数情况下,您会收到 vtable 错误,因为您在将 Q_OBJECT 宏添加到文件后没有重新运行qmake。
致谢:https : //forum.qt.io/post/178663
| 归档时间: |
|
| 查看次数: |
8103 次 |
| 最近记录: |