linux中编译链接出现了错误,但本人看不明白,错误信息请

来源:百度知道 编辑:UC知道 时间:2024/06/24 00:22:01
[root@localhost xinjian]# g++ jiaokeshu272_TestTrapzint.cpp -o jiaokeshu272_TestTrapzint /tmp/ccL53k68.o(.text+0x16e): In function `main':
: undefined reference to `vtable for Trapz'
/tmp/ccL53k68.o(.gnu.linkonce.t._ZN5TrapzC1ERK1F+0x19): In function `Trapz::Trapz(F const&)':
: undefined reference to `vtable for Trapz'
collect2: ld returned 1 exit status
[root@localhost xinjian]#

请高人指点,最好近可能地详细.

首先你要了解编译的步骤,因为.c或(.cpp文件)文件是分离编译的,所以每个.c(或.cpp文件)编译的时候会存在一些对定义在其它.c文件的引用,但是编译起并不负责重定义这些引用,所以最后还要连接器。连接器把每个.c里面没有确定的变量的未定义符号重新定义,最后才产生出一个正确的可执行文件。
但是如果其它文件也没有定义那些符号的话,则会产生一个连接错误,而编译起显示的时候多半是说undefined reference.

看你这个程序,应该是某个变量没有定义,或者是定义域的问题。