<- [[:installation]] ====== compilation problems ====== The operating system: OpenSUSE 11.4 The compiler: gcc-4.5 (also with gcc-4.3) The channelflow version: channelflow-1.4.2 (and 1.4.1) ./configure make I get the following compilation error: Making all in programs-octave make[2]: Entering directory `/home/galanti/COMPUTATION/CHANNEL/channelflow-1.4.2/programs-octave' g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include/octave-3.4.0/octave -I/usr/include/octave-3.4.0/octave/octave -g -O2 -Wall -fomit-frame-pointer -DNDEBUG -MT arnoldi.o -MD -MP -MF .deps/arnoldi.Tpo -c -o arnoldi.o arnoldi.cpp arnoldi.cpp:6:24: fatal error: octave/oct.h: No such file or directory compilation terminated. make[2]: *** [arnoldi.o] Error 1 If I change the Makefile in the directory: programs-octave the line: OCTAVE_INCDIR = /usr/include/octave-3.4.0/octave to: OCTAVE_INCDIR = /usr/include/octave-3.4.0/ I get the following compilation error: Making all in programs-octave make[2]: Entering directory `/home/galanti/COMPUTATION/CHANNEL/channelflow-1.4.2/programs-octave' g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include/octave-3.4.0 -I/usr/include/octave-3.4.0/octave -g -O2 -Wall -fomit-frame-pointer -DNDEBUG -MT arnoldi.o -MD -MP -MF .deps/arnoldi.Tpo -c -o arnoldi.o arnoldi.cpp arnoldi.cpp: In function ‘int main(int, char**)’: arnoldi.cpp:232:20: error: ambiguous overload for ‘operator*=’ in ‘b *= (1.0e+0 / channelflow::L2Norm(((const ColumnVector&)((const ColumnVector*)(& b)))))’ /usr/include/octave-3.4.0/octave/MArray.h:36:1: note: candidates are: MArray& operator*=(MArray&, const T&) [with T = double] /usr/include/octave-3.4.0/octave/dColVector.h:118:1: note: ColumnVector operator*=(ColumnVector&, const double&) octutils.h:46:6: note: void channelflow::operator*=(ColumnVector&, channelflow::Real) arnoldi.cpp: In function ‘void checkConjugacy(const ComplexColumnVector&, const ComplexColumnVector&)’: arnoldi.cpp:533:9: error: ambiguous overload for ‘operator*=’ in ‘g *= -0x00000000000000001’ /usr/include/octave-3.4.0/octave/dColVector.h:118:1: note: candidates are: ColumnVector operator*=(ColumnVector&, const double&) octutils.h:46:6: note: void channelflow::operator*=(ColumnVector&, channelflow::Real) make[2]: *** [arnoldi.o] Error 1 make[2]: Leaving directory `/home/galanti/COMPUTATION/CHANNEL/channelflow-1.4.2/programs-octave' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/galanti/COMPUTATION/CHANNEL/channelflow-1.4.2' make: *** [all] Error 2 Many thanks, Barak //barak, 2011-07-07 10:10 // ~~DISCUSSION~~