Hello,
I'm having some problem with compiling OpenCV code on Solaris SPARC with GCC
4.4.3, I don't know whether it is an OpenCV bug (I have posted on their mailing
list too) or a gcc bug. I was hoping someone may be able to shed some light on
the error and provide some ideas on what I could look at to try and resolve it.
Basically I'm getting the following error:
[ 54%] Building CXX object src/cxcore/CMakeFiles/cxcore.dir/cxmatmul.o
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:673: error: expected ',' or '...'
before numeric constant
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp: In function 'void cv::gemm(const
cv::Mat&, const cv::Mat&)':
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:682: error: conversion from 'int' to
'cv::Mat' is ambiguous
/tmp/OpenCV-2.0.0/include/opencv/cxcore.hpp:732: note: candidates are:
cv::Mat::Mat(const IplImage*, bool) <near match>
/tmp/OpenCV-2.0.0/include/opencv/cxmat.hpp:194: note:
cv::Mat::Mat(const CvMat*, bool) <near match>
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:683: error: request for member 'data'
in '32', which is of non-class type 'int'
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:683: error: 'beta' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:683: error: lvalue required as unary
'&' operand
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:689: error: 'flags' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:715: error: 'flags' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:718: error: 'flags' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:718: error: 'D' was not declared in
this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:725: error: 'D' was not declared in
this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:727: error: 'flags' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:752: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:769: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:784: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:804: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:821: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:845: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:879: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:896: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:911: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:931: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:948: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:972: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:1028: error: 'flags' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:1102: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:1102: error: 'flags' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:1106: error: 'flags' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:1233: error: 'alpha' was not declared
in this scope
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:1240: error: 'alpha' was not declared
in this scope
make[2]: *** [src/cxcore/CMakeFiles/cxcore.dir/cxmatmul.o] Error 1
make[1]: *** [src/cxcore/CMakeFiles/cxcore.dir/all] Error 2
make: *** [all] Error 2
The first syntax error the compiler complains about I think is the main problem:
/tmp/OpenCV-2.0.0/src/cxcore/cxmatmul.cpp:673: error: expected ',' or '...'
before numeric constant
However, when I look at the line of code it's complaining about I can see
absolutely nothing wrong with it:
...
664 static void GEMMStore_64fc( const Complexd* c_data, size_t c_step,
665 const Complexd* d_buf, size_t d_buf_step,
666 Complexd* d_data, size_t d_step, Size d_size,
667 double alpha, double beta, int flags )
668 {
669 GEMMStore(c_data, c_step, d_buf, d_buf_step, d_data, d_step,
d_size, alpha, beta, flags);
670 }
671
672
673 void gemm( const Mat& _A, const Mat& _B double alpha,
674 const Mat& _C, double beta, Mat& D, int flags )
675 {
676 const int block_lin_size = 128;
677 const int block_size = block_lin_size * block_lin_size;
678
679 static double zero[] = {0,0,0,0};
680 static float zerof[] = {0,0,0,0};
...
What could possibly be causing this error??
Environment configuration
=================
SunOS ignatius 5.10 Generic_142900-03 sun4u sparc SUNW,Sun-Fire-V440
GCC 4.4.3
GNU Make 3.80
LD_OPTIONS=-R/usr/local/lib/ -R/usr/local/lib
LD_LIBRARY_PATH=/usr/local/lib:/usr/sfw/lib:/usr/ccs/lib
PATH=/usr/local/bin:/usr/sfw/bin:/usr/ccs/bin:/usr/xpg4/bin:/usr/bin
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D
BUILD_PYTHON_SUPPORT=OFF -D PYTHON_LIBRARY=/usr/local/lib /tmp/OpenCV-2.0.0
I'd really appreciate any help anyone can give, even if it's just to say it's
not a gcc bug!
Many Thanks,
Nick
This email was independently scanned for viruses by McAfee anti-virus software
and none were found