fgs-obj
fgs-obj copied to clipboard
Issue when compile
Hi,
I tried to compile your code using Ubuntu 14.04 with matlab 2014b I got mistakes:
g++ solver_3_0.o linpack.o timer.o blas.o matlabexception.o matlabscalar.o matlabstring.o matlabmatrix.o arrayofmatrices.o program.o matlabprogram.o lbfgsb.o -shared -o lbfgsb.mexa64 -L/usr/local/MATLAB/R2014b/bin/glnxa64 -lgfortran -lm
/usr/bin/ld: i386 architecture of input file solver_3_0.o' is incompatible with i386:x86-64 output /usr/bin/ld: i386 architecture of input file
linpack.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file timer.o' is incompatible with i386:x86-64 output /usr/bin/ld: i386 architecture of input file
blas.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file matlabexception.o' is incompatible with i386:x86-64 output /usr/bin/ld: i386 architecture of input file
matlabscalar.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file matlabstring.o' is incompatible with i386:x86-64 output /usr/bin/ld: i386 architecture of input file
matlabmatrix.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file arrayofmatrices.o' is incompatible with i386:x86-64 output /usr/bin/ld: i386 architecture of input file
program.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file matlabprogram.o' is incompatible with i386:x86-64 output /usr/bin/ld: i386 architecture of input file
lbfgsb.o' is incompatible with i386:x86-64 output
matlabscalar.o: In function getMatlabScalar(mxArray_tag const*)': matlabscalar.cpp:(.text+0x18): undefined reference to
mxIsDouble'
matlabscalar.cpp:(.text+0x24): undefined reference to mxGetNumberOfElements' matlabscalar.cpp:(.text+0x31): undefined reference to
mxGetPr'
matlabscalar.o: In function createMatlabScalar(mxArray_tag*&)': matlabscalar.cpp:(.text+0xa5): undefined reference to
mxCreateDoubleScalar'
matlabscalar.cpp:(.text+0xb3): undefined reference to mxGetPr' matlabstring.o: In function
copystring(char const_)':
matlabstring.cpp:(.text+0x24): undefined reference to operator new[](unsigned int)' matlabstring.o: In function
MatlabString::MatlabString(mxArray_tag const_)':
matlabstring.cpp:(.text+0x63): undefined reference to mxIsChar' matlabstring.cpp:(.text+0x6f): undefined reference to
mxArrayToString'
matlabstring.o: In function MatlabString::~MatlabString()': matlabstring.cpp:(.text+0x12d): undefined reference to
mxFree'
matlabmatrix.o: In function getMatlabMatrixDouble(mxArray_tag const*)': matlabmatrix.cpp:(.text+0x18): undefined reference to
mxGetNumberOfDimensions'
matlabmatrix.cpp:(.text+0x25): undefined reference to mxIsDouble' matlabmatrix.cpp:(.text+0x31): undefined reference to
mxGetPr'
matlabmatrix.o: In function createMatlabMatrixDouble(mxArray_tag*&, int, int)': matlabmatrix.cpp:(.text+0xb7): undefined reference to
mxCreateDoubleMatrix'
matlabmatrix.cpp:(.text+0xc5): undefined reference to mxGetPr' matlabmatrix.o: In function
Matrix::Matrix(int, int)':
matlabmatrix.cpp:(.text+0x119): undefined reference to operator new[](unsigned int)' matlabmatrix.o: In function
Matrix::Matrix(mxArray_tag const_)':
matlabmatrix.cpp:(.text+0x17e): undefined reference to mxGetNumberOfElements' matlabmatrix.cpp:(.text+0x199): undefined reference to
mxGetM'
matlabmatrix.cpp:(.text+0x1a4): undefined reference to mxGetN' arrayofmatrices.o: In function
ArrayOfMatrices::ArrayOfMatrices(mxArray_tag const__, int)':
arrayofmatrices.cpp:(.text+0x43): undefined reference to operator new[](unsigned int)' arrayofmatrices.cpp:(.text+0x80): undefined reference to
operator new(unsigned int)'
arrayofmatrices.o: In function ArrayOfMatrices::ArrayOfMatrices(mxArray_tag__, ArrayOfMatrices const&)': arrayofmatrices.cpp:(.text+0x123): undefined reference to
operator new[](unsigned int)'
arrayofmatrices.cpp:(.text+0x17e): undefined reference tooperator new(unsigned int)' arrayofmatrices.o: In function
ArrayOfMatrices::ArrayOfMatrices(double_, ArrayOfMatrices const&)':
arrayofmatrices.cpp:(.text+0x274): undefined reference to operator new[](unsigned int)' arrayofmatrices.cpp:(.text+0x2d2): undefined reference to
operator new(unsigned int)'
arrayofmatrices.o: In function ArrayOfMatrices::getnummatlabmatrices(mxArray_tag const*)': arrayofmatrices.cpp:(.text+0x478): undefined reference to
mxIsCell'
arrayofmatrices.cpp:(.text+0x484): undefined reference to mxGetNumberOfDimensions' arrayofmatrices.cpp:(.text+0x4d1): undefined reference to
mxGetNumberOfElements'
arrayofmatrices.cpp:(.text+0x4e4): undefined reference to mxIsDouble' arrayofmatrices.o: In function
ArrayOfMatrices::ArrayOfMatrices(mxArray_tag const_)':
arrayofmatrices.cpp:(.text+0x548): undefined reference to operator new[](unsigned int)' arrayofmatrices.cpp:(.text+0x579): undefined reference to
mxIsCell'
arrayofmatrices.cpp:(.text+0x59c): undefined reference to mxGetCell' arrayofmatrices.cpp:(.text+0x5ac): undefined reference to
operator new(unsigned int)'
arrayofmatrices.cpp:(.text+0x5e0): undefined reference to operator new(unsigned int)' program.o: In function
Program::initStructures()':
program.cpp:(.text+0x427): undefined reference to operator new[](unsigned int)' program.cpp:(.text+0x45d): undefined reference to
operator new[](unsigned int)'
program.cpp:(.text+0x47d): undefined reference to operator new[](unsigned int)' program.o: In function
Program::Program(int, int, int, double, double)':
program.cpp:(.text+0x55b): undefined reference to operator new[](unsigned int)' program.cpp:(.text+0x566): undefined reference to
operator new[](unsigned int)'
program.o:program.cpp:(.text+0x571): more undefined references to operator new[](unsigned int)' follow matlabprogram.o: In function
MatlabProgram::~MatlabProgram()':
matlabprogram.cpp:(.text+0x7d): undefined reference to mxDestroyArray' matlabprogram.o: In function
MatlabProgram::computeObjective(int, double_)':
matlabprogram.cpp:(.text+0x32a): undefined reference to mexCallMATLAB' matlabprogram.cpp:(.text+0x358): undefined reference to
mxDestroyArray'
matlabprogram.o: In function MatlabProgram::computeGradient(int, double*, double*)': matlabprogram.cpp:(.text+0x423): undefined reference to
mexCallMATLAB'
matlabprogram.cpp:(.text+0x4c2): undefined reference to mxDestroyArray' matlabprogram.o: In function
MatlabProgram::iterCallback(int, double_, double)':
matlabprogram.cpp:(.text+0x618): undefined reference to mexCallMATLAB' matlabprogram.o: In function
getBoundType(double&, double&)':
matlabprogram.cpp:(.text+0x691): undefined reference to mxIsInf' matlabprogram.cpp:(.text+0x6a0): undefined reference to
mxIsInf'
matlabprogram.o: In function MatlabProgram::MatlabProgram(ArrayOfMatrices&, ArrayOfMatrices const&, ArrayOfMatrices const&, MatlabString const_, MatlabString const_, MatlabString const_, mxArray_tag_, int, int, double, double)': matlabprogram.cpp:(.text+0x7bb): undefined reference to
operator new[](unsigned int)'
matlabprogram.cpp:(.text+0x7de): undefined reference tooperator new[](unsigned int)' matlabprogram.cpp:(.text+0x801): undefined reference to
operator new[](unsigned int)'
matlabprogram.cpp:(.text+0x824): undefined reference tooperator new[](unsigned int)' matlabprogram.cpp:(.text+0x8e4): undefined reference to
operator new[](unsigned int)'
matlabprogram.cpp:(.text+0x8f6): undefined reference tooperator new(unsigned int)' matlabprogram.cpp:(.text+0x952): undefined reference to
operator new[](unsigned int)'
matlabprogram.cpp:(.text+0x9de): undefined reference tooperator new[](unsigned int)' matlabprogram.cpp:(.text+0x9f2): undefined reference to
operator new(unsigned int)'
matlabprogram.cpp:(.text+0xa22): undefined reference tooperator new(unsigned int)' lbfgsb.o: In function
mexFunction':
lbfgsb.cpp:(.text+0x2d6): undefined reference tomxIsEmpty' lbfgsb.cpp:(.text+0x2fd): undefined reference to
mxIsEmpty'
lbfgsb.cpp:(.text+0x499): undefined reference tomxGetEps' lbfgsb.cpp:(.text+0x552): undefined reference to
operator new(unsigned int)'
lbfgsb.cpp:(.text+0x615): undefined reference to`mexErrMsgTxt'
/usr/bin/ld: solver_3_0.o: file class ELFCLASS32 incompatible with ELFCLASS64
/usr/bin/ld: final link failed: File in wrong format
collect2: error: ld returned 1 exit status
make: *_* [lbfgsb_nomex] Error 1
gpml toolbox is compiled
Do you have any idea how to solve that?
@zizhaozhang This looks like a problem in compiling the lbfgs-b module of GPML toolbox. You probably can find some useful information by referring to the README file of the GPML toolbox.
Anyway, it is not critical if you still cannot solve problem. You can just comment out the code for compiling lbfgs-b in ./gp-general/gp_setup.m and in ./dependency/compile_dependency.m
The code will automatically try other solvers (e.g., the LBFGS solver in minFunc, and the minimize toolbox) if lbfgs-b solver doesn't exist.
I probably will also disable lbfgs-b compilation in the next commit, since several people met problems here.
Thanks for your quick response. Another issue is that I follow the instructions and it automatically download some models which includes model_svm_struct and model_svm_linear. However the data inside (e.g., categ_list.mat classifier) has 0 size (file exists but with 0 size). The data in subfolder "cnn" looks fine. Could also let me know the solutions. Thanks!
@zizhaozhang Oops ... There is a wrong link in get_voc_2007.sh I corrected in the latest commit. Thanks for pointing it out!
Thanks you! Yuting