求救:tornado 2.2 powerpc c++驱动问题。

时间:2023-02-09 19:38:16
下面是编译信息:
vxrm *.o *.rpo ctdt.c symTbl.c vxApp* *.out *.pl
vxrm ..\prjComps.h ..\prjParams.h ..\prjConfig.c ..\linkSyms.c
vxrm ..\libs.nm ..\libs.size
F:\tornado2.2\host\gnu\3.3\x86-win32\bin\ccppc -g -mcpu=8540 -mstrict-align -ansi -nostdli 
b -fno-builtin -fno-defer-pop -fno-exceptions -fno-implement-inlines -Wall -I. -IF:\tornad 
o2.2\target\h\ -DCPU=PPC85XX -DTOOL_FAMILY=gnu -DTOOL=gnu -D_DEBUG -DVXWORKS_BUILD -c F:\t 
ornado2.2\proj\8541gnu\OSLayer\Shared\CMiniMiteLongDmaSglPoolManager.cpp
F:\tornado2.2\host\gnu\3.3\x86-win32\bin\ccppc -g -mcpu=8540 -mstrict-align -ansi -nostdli 
b -fno-builtin -fno-defer-pop -fno-exceptions -fno-implement-inlines -Wall -I. -IF:\tornad 
o2.2\target\h\ -DCPU=PPC85XX -DTOOL_FAMILY=gnu -DTOOL=gnu -D_DEBUG -DVXWORKS_BUILD -c F:\t 
ornado2.2\proj\8541gnu\OSLayer\Shared\COSMiniMiteDmaChannel.cpp
F:\tornado2.2\host\gnu\3.3\x86-win32\bin\ccppc -g -mcpu=8540 -mstrict-align -ansi -nostdli 
b -fno-builtin -fno-defer-pop -fno-exceptions -fno-implement-inlines -Wall -I. -IF:\tornad 
o2.2\target\h\ -DCPU=PPC85XX -DTOOL_FAMILY=gnu -DTOOL=gnu -D_DEBUG -DVXWORKS_BUILD -c F:\t 
ornado2.2\proj\8541gnu\OSLayer\Shared\COSMiniMiteDmaSgl.cpp
F:\tornado2.2\host\gnu\3.3\x86-win32\bin\ccppc -g -mcpu=8540 -mstrict-align -ansi -nostdli 
b -fno-builtin -fno-defer-pop -fno-exceptions -fno-implement-inlines -Wall -I. -IF:\tornad 
o2.2\target\h\ -DCPU=PPC85XX -DTOOL_FAMILY=gnu -DTOOL=gnu -D_DEBUG -DVXWORKS_BUILD -c F:\t 
ornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDevice\COSDevice.cpp
F:\tornado2.2\host\gnu\3.3\x86-win32\bin\ccppc -g -mcpu=8540 -mstrict-align -ansi -nostdli 
b -fno-builtin -fno-defer-pop -fno-exceptions -fno-implement-inlines -Wall -I. -IF:\tornad 
o2.2\target\h\ -DCPU=PPC85XX -DTOOL_FAMILY=gnu -DTOOL=gnu -D_DEBUG -DVXWORKS_BUILD -c F:\t 
ornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDevice\COSGpibDevice.cpp
F:\tornado2.2\host\gnu\3.3\x86-win32\bin\ccppc -g -mcpu=8540 -mstrict-align -ansi -nostdli 
b -fno-builtin -fno-defer-pop -fno-exceptions -fno-implement-inlines -Wall -I. -IF:\tornad 
o2.2\target\h\ -DCPU=PPC85XX -DTOOL_FAMILY=gnu -DTOOL=gnu -D_DEBUG -DVXWORKS_BUILD -c F:\t 
ornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDeviceManager\COSGpibDeviceManager.cpp
F:\tornado2.2\host\gnu\3.3\x86-win32\bin\ccppc -g -mcpu=8540 -mstrict-align -ansi -nostdli 
b -fno-builtin -fno-defer-pop -fno-exceptions -fno-implement-inlines -Wall -I. -IF:\tornad 
o2.2\target\h\ -DCPU=PPC85XX -DTOOL_FAMILY=gnu -DTOOL=gnu -D_DEBUG -DVXWORKS_BUILD -c F:\t 
ornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDpc\COSDpc.cpp
F:\tornado2.2\host\gnu\3.3\x86-win32\bin\ccppc -g -mcpu=8540 -mstrict-align -ansi -nostdli 
b -fno-builtin -fno-defer-pop -fno-exceptions -fno-implement-inlines -Wall -I. -IF:\tornad 
o2.2\target\h\ -DCPU=PPC85XX -DTOOL_FAMILY=gnu -DTOOL=gnu -D_DEBUG -DVXWORKS_BUILD -c F:\t 
ornado2.2\proj\8541gnu\OSLayer\VxWorks\COSMutex\COSMutex.cpp
F:\tornado2.2\host\gnu\3.3\x86-win32\bin\ccppc -g -mcpu=8540 -mstrict-align -ansi -nostdli 
b -fno-builtin -fno-defer-pop -fno-exceptions -fno-implement-inlines -Wall -I. -IF:\tornad 
o2.2\target\h\ -DCPU=PPC85XX -DTOOL_FAMILY=gnu -DTOOL=gnu -D_DEBUG -DVXWORKS_BUILD -c F:\t 
ornado2.2\proj\8541gnu\OSLayer\VxWorks\COSSemaphore\COSSemaphore.cpp
F:\tornado2.2\host\gnu\3.3\x86-win32\bin\ccppc -g -mcpu=8540 -mstrict-align -ansi -nostdli 
b -fno-builtin -fno-defer-pop -fno-exceptions -fno-implement-inlines -Wall -I. -IF:\tornad 
o2.2\target\h\ -DCPU=PPC85XX -DTOOL_FAMILY=gnu -DTOOL=gnu -D_DEBUG -DVXWORKS_BUILD -c F:\t 
ornado2.2\proj\8541gnu\OSLayer\VxWorks\COSThread\COSThread.cpp
F:\tornado2.2\host\gnu\3.3\x86-win32\bin\ccppc -g -mcpu=8540 -mstrict-align -ansi -nostdli 
b -fno-builtin -fno-defer-pop -fno-exceptions -fno-implement-inlines -Wall -I. -IF:\tornad 
o2.2\target\h\ -DCPU=PPC85XX -DTOOL_FAMILY=gnu -DTOOL=gnu -D_DEBUG -DVXWORKS_BUILD -c F:\t 
ornado2.2\proj\8541gnu\OSLayer\VxWorks\Initialization\OSNiDeviceOSLayerInitialization.cpp
F:\tornado2.2\host\gnu\3.3\x86-win32\bin\ccppc -g -mcpu=8540 -mstrict-align -ansi -nostdli 
b -fno-builtin -fno-defer-pop -fno-exceptions -fno-implement-inlines -Wall -I. -IF:\tornad 
o2.2\target\h\ -DCPU=PPC85XX -DTOOL_FAMILY=gnu -DTOOL=gnu -D_DEBUG -DVXWORKS_BUILD -c F:\t 
ornado2.2\proj\8541gnu\OSLayer\VxWorks\OSCppRuntime\OSCppRuntime.cpp
vxrm ..\prjObjs.lst
Generating ..\prjObjs.lst... 
F:\\tornado2.2\\host\\gnu\\3.3\\x86-win32\\bin\\ccppc -r -nostdlib -Wl,-X -Wl,@..\prjObjs. 
lst  -o partialImage.o 
COSMiniMiteDmaSgl.o(.rodata+0x308):F:\tornado2.2\proj\8541gnu\OSLayer\Shared\COSMiniMiteDm 
aSgl.cpp:79: multiple definition of `vtable for COSDmaSgl'
COSMiniMiteDmaChannel.o(.rodata+0x770):F:\tornado2.2\proj\8541gnu\OSLayer\Shared\COSMiniMi 
teDmaChannel.cpp:224: first defined here
COSMiniMiteDmaSgl.o(.rodata+0x324):F:\tornado2.2\proj\8541gnu\OSLayer\Shared\COSMiniMiteDm 
aSgl.cpp:80: multiple definition of `typeinfo for COSDmaSgl'
COSMiniMiteDmaChannel.o(.rodata+0x7c4):F:\tornado2.2\proj\8541gnu\OSLayer\Shared\COSMiniMi 
teDmaChannel.cpp:227: first defined here
COSGpibDevice.o(.rodata+0x348):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDevice\COSGpi 
bDevice.cpp:88: multiple definition of `vtable for COSInterruptHandler'
COSDevice.o(.rodata+0x100):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDevice\COSDevice. 
cpp:76: first defined here
COSGpibDevice.o(.rodata+0x3d4):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDevice\COSGpi 
bDevice.cpp:106: multiple definition of `typeinfo for COSInterruptHandler'
COSDevice.o(.rodata+0x114):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDevice\COSDevice. 
cpp:76: first defined here
COSGpibDevice.o(.rodata+0x360):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDevice\COSGpi 
bDevice.cpp:90: multiple definition of `vtable for COSDmaChannel'
COSMiniMiteDmaChannel.o(.rodata+0x780):F:\tornado2.2\proj\8541gnu\OSLayer\Shared\COSMiniMi 
teDmaChannel.cpp:224: first defined here
COSGpibDevice.o(.rodata+0x3dc):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDevice\COSGpi 
bDevice.cpp:106: multiple definition of `typeinfo for COSDmaChannel'
COSMiniMiteDmaChannel.o(.rodata+0x7d8):F:\tornado2.2\proj\8541gnu\OSLayer\Shared\COSMiniMi 
teDmaChannel.cpp:230: first defined here
COSGpibDeviceManager.o(.rodata+0xd0):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDeviceM 
anager\COSGpibDeviceManager.cpp:80: multiple definition of `vtable for COSGpibDevice'
COSGpibDevice.o(.rodata+0x3a8):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDevice\COSGpi 
bDevice.cpp:103: first defined here
COSGpibDeviceManager.o(.rodata+0xfc):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDeviceM 
anager\COSGpibDeviceManager.cpp:81: multiple definition of `typeinfo for COSGpibDevice'
COSGpibDevice.o(.rodata+0x3e4):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDevice\COSGpi 
bDevice.cpp:106: first defined here
COSDpc.o(.rodata+0xf8):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDpc\COSDpc.cpp:79: mu 
ltiple definition of `vtable for COSInterruptHandler'
COSDevice.o(.rodata+0x100):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDevice\COSDevice. 
cpp:76: first defined here
COSDpc.o(.rodata+0x10c):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDpc\COSDpc.cpp:81: m 
ultiple definition of `typeinfo for COSInterruptHandler'
COSDevice.o(.rodata+0x114):F:\tornado2.2\proj\8541gnu\OSLayer\VxWorks\COSDevice\COSDevice. 
cpp:76: first defined here
collect2: ld terminated with signal 1 [Signal 1]
ccppc: Internal error: Signal 1 (program collect2)
Please submit a full bug report.
See <URL:http:\\www.windriver.com\windsurf\tsrview\tsrRequest.shtml> for instructions.
make: *** [10_OSLayer.out] Error 0x1

Done.


调了好几天一直找不到问题。请教高手,万分感激!

6 个解决方案

#1


multiple definition of `vtable for COSGpibDevice' 感觉应该是重复define,但是用ppc603gnu编译没有问题,改为mpc8540gnu就出现这种问题。这是怎么回事呢

#2


周末好冷清...

#3


友情帮顶下!

#4


友情帮顶友情帮顶

#5


多谢两位!已经用c重写了,感谢两位友情支持。给分结贴。

#6


kanyixia

#1


multiple definition of `vtable for COSGpibDevice' 感觉应该是重复define,但是用ppc603gnu编译没有问题,改为mpc8540gnu就出现这种问题。这是怎么回事呢

#2


周末好冷清...

#3


友情帮顶下!

#4


友情帮顶友情帮顶

#5


多谢两位!已经用c重写了,感谢两位友情支持。给分结贴。

#6


kanyixia