|
在DM642的例程中调用了一段自己后添加进去的函数,其中使用了函数void cvNot();
编译时出现以下错误:
[Linking...] "c:\ti\c6000\cgtools\bin\cl6x" -@"Debug.lkf"
<Linking>
undefined first referenced
symbol in file
--------- ----------------
_cvNot C:\ICETEK-DM642-AVM_V3J\Lab09-SignalChannel\Debug\opencv_cvnot.obj
>> error: symbol referencing errors - './Debug/SignalChannel.out' not built
由本论坛的文章《在C6000系列DSP中使用EMCV》知道是有C++的函数重载导致的,按照以前类似问题的处理方式
加入了extern “C”{ 的方法处理后,又出现了以下错误:
[opencv_cvnot.cpp] "c:\ti\c6000\cgtools\bin\cl6x" -g -fr"C:/ICETEK-DM642-AVM_V3J/Lab09-SignalChannel/Debug" -i"c:/ti/boards/evmdm642/include" -i"c:/ti/ddk/include" -i"C:/ICETEK-DM642-AVM_V3J/Lab09-SignalChannel" -d"_DEBUG" -d"CHIP_DM642" -d"_LOOPBACK" -ml3 -mr1 -mv6400 -@"Debug.lkf" "opencv_cvnot.cpp"
"cmcv\\cv\\../cxcore/cxcore.h", line 572: error: more than one instance of overloaded function "cvNot" has "C" linkage
1 error detected in the compilation of "opencv_cvnot.cpp".
双击这个错误提示语句自动打开cxcore.h文件的“CVAPI(void) cvNot( const CvArr* src, CvArr* dst );”行。
而调用函数void cvCopy()时就没发生这样的编译错误。
如何处理这样的矛盾呢??? |
|