views:

525

answers:

1

I'm trying to make a pretty obscure app called VW34 which is a computer vision library that uses openGL. I'm getting an error during make after most of the app compiles successfully "GeomObjects/point3d.cpp:88: error: ‘VW::Point3D VW::operator+(const VW::Point3D&, const VW::Point3D&)’ should have been declared inside ‘VW’" .

Supposedly the code for this compiles cleanly on my system (Ubuntu 8.0.4.2). So I am probably missing some dependency but I have no idea which. I am using gcc-4.1 and automake1.9 (required according to the README).

Here are the installation structions I have followed to the letter from a fresh install of the same OS used by the README creator: http://people.mech.kuleuven.be/~tdelaet/installation_scenlibEXTRA.txt

Here is the output from successive runs of make:

make  all-recursive
make[1]: Entering directory `/home/dewayne/Downloads/VW34'
Making all in VNL
make[2]: Entering directory `/home/dewayne/Downloads/VW34/VNL'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/dewayne/Downloads/VW34/VNL'
Making all in VW
make[2]: Entering directory `/home/dewayne/Downloads/VW34/VW'
make  all-am
make[3]: Entering directory `/home/dewayne/Downloads/VW34/VW'
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../VNL  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT GeomObjects/point3d.o -MD -MP -MF "GeomObjects/.deps/point3d.Tpo" -c -o GeomObjects/point3d.o `test -f 'GeomObjects/point3d.cpp' || echo './'`GeomObjects/point3d.cpp; \
    then mv -f "GeomObjects/.deps/point3d.Tpo" "GeomObjects/.deps/point3d.Po"; else rm -f "GeomObjects/.deps/point3d.Tpo"; exit 1; fi
GeomObjects/point3d.cpp:88: error: ‘VW::Point3D VW::operator+(const VW::Point3D&, const VW::Point3D&)’ should have been declared inside ‘VW’
GeomObjects/point3d.cpp:143: error: ‘VW::Point3D VW::operator/(const VW::Point3D&, double)’ should have been declared inside ‘VW’
make[3]: *** [GeomObjects/point3d.o] Error 1
make[3]: Leaving directory `/home/dewayne/Downloads/VW34/VW'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/dewayne/Downloads/VW34/VW'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dewayne/Downloads/VW34'
make: *** [all] Error 2

Here is the output of configure:

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for g++... g++
checking for C++ compiler default output file name... a.out
checking whether the C++ compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking whether gcc and cc understand -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for a BSD-compatible install... /usr/bin/install -c
checking whether make sets $(MAKE)... (cached) yes
checking for ranlib... ranlib
checking for X... libraries , headers 
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking for unistd.h... (cached) yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for off_t... yes
checking for size_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for working volatile... yes
checking for error_at_line... yes
checking for pid_t... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking whether gcc needs -traditional... no
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking return type of signal handlers... void
checking for dup2... yes
checking for floor... no
checking for gettimeofday... yes
checking for memset... yes
checking for munmap... yes
checking for pow... no
checking for sqrt... no
checking for strerror... yes
checking for tzset... yes
checking X11/Xlib.h usability... yes
checking X11/Xlib.h presence... yes
checking for X11/Xlib.h... yes
checking X11/Xutil.h usability... yes
checking X11/Xutil.h presence... yes
checking for X11/Xutil.h... yes
checking X11/forms.h usability... no
checking X11/forms.h presence... no
checking for X11/forms.h... no
configure: WARNING: **** xforms not found **** libVWXForms.a will not be compiled
checking for dc1394_dma_setup_capture in -ldc1394_control... no
configure: WARNING: **** libdc1394 not found **** libVWFirewire.a will not be compiled
checking GL/gl.h usability... yes
checking GL/gl.h presence... yes
checking for GL/gl.h... yes
checking GL/glu.h usability... yes
checking GL/glu.h presence... yes
checking for GL/glu.h... yes
checking for /usr/include/gtkgl--/glarea.h... no
configure: WARNING: **** gtkgl-- not found **** libVWGTK.a will not have GL support
checking how to run the C++ preprocessor... g++ -E
checking glow.h usability... no
checking glow.h presence... no
checking for glow.h... no
checking for GLOW location... /home/dewayne/Downloads/glow_104/glow_src
checking for gethostbyname... yes
checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... yes
checking for Qt... ls: cannot access /lib/libqt*: No such file or directory
/usr/lib/libqthreads.so.12
/usr/lib/libqthreads.so.12.3.1
no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating VNL/Makefile
config.status: creating VW/Makefile
config.status: creating VWFirewire/Makefile
config.status: creating VWMeteor/Makefile
config.status: creating VWYorick/Makefile
config.status: creating VWGL/Makefile
config.status: creating VWGTK/Makefile
config.status: creating VWWx/Makefile
config.status: creating VWGLOW/Makefile
config.status: creating VWQt/Makefile
config.status: creating VWX/Makefile
config.status: creating VWXForms/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
Components to be compiled:
    Core:
      libVNL.a...         yes
      libVW.a...          yes
    GUI:
      libVWX.a...         yes
      libVWXForms.a...    no
      libVWGL.a...        yes
      libVWGLOW.a...      yes
      libVWGTK.a...        (gl support - no)
      libVWWx.a...         (gl support - )
      libVWQt.a...        no
    Hardware:
      libVWMeteor.a...    yes
      libWVYorick.a...    yes
      libVWGTI.a...       no
      libVWFirewire.a...  no

Here is the extended output of make:

make  all-recursive
make[1]: Entering directory `/home/dewayne/Downloads/VW34'
Making all in VNL
make[2]: Entering directory `/home/dewayne/Downloads/VW34/VNL'
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT alloc.o -MD -MP -MF ".deps/alloc.Tpo" -c -o alloc.o alloc.cpp; \
    then mv -f ".deps/alloc.Tpo" ".deps/alloc.Po"; else rm -f ".deps/alloc.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT bignum.o -MD -MP -MF ".deps/bignum.Tpo" -c -o bignum.o bignum.cpp; \
    then mv -f ".deps/bignum.Tpo" ".deps/bignum.Po"; else rm -f ".deps/bignum.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT copy.o -MD -MP -MF ".deps/copy.Tpo" -c -o copy.o copy.cpp; \
    then mv -f ".deps/copy.Tpo" ".deps/copy.Po"; else rm -f ".deps/copy.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT error.o -MD -MP -MF ".deps/error.Tpo" -c -o error.o error.cpp; \
    then mv -f ".deps/error.Tpo" ".deps/error.Po"; else rm -f ".deps/error.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT numerictraits.o -MD -MP -MF ".deps/numerictraits.Tpo" -c -o numerictraits.o numerictraits.cpp; \
    then mv -f ".deps/numerictraits.Tpo" ".deps/numerictraits.Po"; else rm -f ".deps/numerictraits.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT numericlimits.o -MD -MP -MF ".deps/numericlimits.Tpo" -c -o numericlimits.o numericlimits.cpp; \
    then mv -f ".deps/numericlimits.Tpo" ".deps/numericlimits.Po"; else rm -f ".deps/numericlimits.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT rational.o -MD -MP -MF ".deps/rational.Tpo" -c -o rational.o rational.cpp; \
    then mv -f ".deps/rational.Tpo" ".deps/rational.Po"; else rm -f ".deps/rational.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT vnlmath.o -MD -MP -MF ".deps/vnlmath.Tpo" -c -o vnlmath.o vnlmath.cpp; \
    then mv -f ".deps/vnlmath.Tpo" ".deps/vnlmath.Po"; else rm -f ".deps/vnlmath.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT complextraits.o -MD -MP -MF ".deps/complextraits.Tpo" -c -o complextraits.o complextraits.cpp; \
    then mv -f ".deps/complextraits.Tpo" ".deps/complextraits.Po"; else rm -f ".deps/complextraits.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT complex.o -MD -MP -MF ".deps/complex.Tpo" -c -o complex.o complex.cpp; \
    then mv -f ".deps/complex.Tpo" ".deps/complex.Po"; else rm -f ".deps/complex.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT crossproductmatrix.o -MD -MP -MF ".deps/crossproductmatrix.Tpo" -c -o crossproductmatrix.o crossproductmatrix.cpp; \
    then mv -f ".deps/crossproductmatrix.Tpo" ".deps/crossproductmatrix.Po"; else rm -f ".deps/crossproductmatrix.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT matops.o -MD -MP -MF ".deps/matops.Tpo" -c -o matops.o matops.cpp; \
    then mv -f ".deps/matops.Tpo" ".deps/matops.Po"; else rm -f ".deps/matops.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT trace.o -MD -MP -MF ".deps/trace.Tpo" -c -o trace.o trace.cpp; \
    then mv -f ".deps/trace.Tpo" ".deps/trace.Po"; else rm -f ".deps/trace.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT transpose.o -MD -MP -MF ".deps/transpose.Tpo" -c -o transpose.o transpose.cpp; \
    then mv -f ".deps/transpose.Tpo" ".deps/transpose.Po"; else rm -f ".deps/transpose.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT unaryfunction.o -MD -MP -MF ".deps/unaryfunction.Tpo" -c -o unaryfunction.o unaryfunction.cpp; \
    then mv -f ".deps/unaryfunction.Tpo" ".deps/unaryfunction.Po"; else rm -f ".deps/unaryfunction.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT linearoperators3.o -MD -MP -MF ".deps/linearoperators3.Tpo" -c -o linearoperators3.o linearoperators3.cpp; \
    then mv -f ".deps/linearoperators3.Tpo" ".deps/linearoperators3.Po"; else rm -f ".deps/linearoperators3.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT linearsystem.o -MD -MP -MF ".deps/linearsystem.Tpo" -c -o linearsystem.o linearsystem.cpp; \
    then mv -f ".deps/linearsystem.Tpo" ".deps/linearsystem.Po"; else rm -f ".deps/linearsystem.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT costfunction.o -MD -MP -MF ".deps/costfunction.Tpo" -c -o costfunction.o costfunction.cpp; \
    then mv -f ".deps/costfunction.Tpo" ".deps/costfunction.Po"; else rm -f ".deps/costfunction.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT nonlinearminimizer.o -MD -MP -MF ".deps/nonlinearminimizer.Tpo" -c -o nonlinearminimizer.o nonlinearminimizer.cpp; \
    then mv -f ".deps/nonlinearminimizer.Tpo" ".deps/nonlinearminimizer.Po"; else rm -f ".deps/nonlinearminimizer.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT realnpolynomial.o -MD -MP -MF ".deps/realnpolynomial.Tpo" -c -o realnpolynomial.o realnpolynomial.cpp; \
    then mv -f ".deps/realnpolynomial.Tpo" ".deps/realnpolynomial.Po"; else rm -f ".deps/realnpolynomial.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT realpolynomial.o -MD -MP -MF ".deps/realpolynomial.Tpo" -c -o realpolynomial.o realpolynomial.cpp; \
    then mv -f ".deps/realpolynomial.Tpo" ".deps/realpolynomial.Po"; else rm -f ".deps/realpolynomial.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT leastsquarescostfunction.o -MD -MP -MF ".deps/leastsquarescostfunction.Tpo" -c -o leastsquarescostfunction.o leastsquarescostfunction.cpp; \
    then mv -f ".deps/leastsquarescostfunction.Tpo" ".deps/leastsquarescostfunction.Po"; else rm -f ".deps/leastsquarescostfunction.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT leastsquaresfunction.o -MD -MP -MF ".deps/leastsquaresfunction.Tpo" -c -o leastsquaresfunction.o leastsquaresfunction.cpp; \
    then mv -f ".deps/leastsquaresfunction.Tpo" ".deps/leastsquaresfunction.Po"; else rm -f ".deps/leastsquaresfunction.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT fastops.o -MD -MP -MF ".deps/fastops.Tpo" -c -o fastops.o fastops.cpp; \
    then mv -f ".deps/fastops.Tpo" ".deps/fastops.Po"; else rm -f ".deps/fastops.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT sparsematrixlinearsystem.o -MD -MP -MF ".deps/sparsematrixlinearsystem.Tpo" -c -o sparsematrixlinearsystem.o sparsematrixlinearsystem.cpp; \
    then mv -f ".deps/sparsematrixlinearsystem.Tpo" ".deps/sparsematrixlinearsystem.Po"; else rm -f ".deps/sparsematrixlinearsystem.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT sample.o -MD -MP -MF ".deps/sample.Tpo" -c -o sample.o sample.cpp; \
    then mv -f ".deps/sample.Tpo" ".deps/sample.Po"; else rm -f ".deps/sample.Tpo"; exit 1; fi
sample.cpp:60: warning: this decimal constant is unsigned only in ISO C90
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT matlabfilewrite.o -MD -MP -MF ".deps/matlabfilewrite.Tpo" -c -o matlabfilewrite.o matlabfilewrite.cpp; \
    then mv -f ".deps/matlabfilewrite.Tpo" ".deps/matlabfilewrite.Po"; else rm -f ".deps/matlabfilewrite.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT matlabheader.o -MD -MP -MF ".deps/matlabheader.Tpo" -c -o matlabheader.o matlabheader.cpp; \
    then mv -f ".deps/matlabheader.Tpo" ".deps/matlabheader.Po"; else rm -f ".deps/matlabheader.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT matlabprint2.o -MD -MP -MF ".deps/matlabprint2.Tpo" -c -o matlabprint2.o matlabprint2.cpp; \
    then mv -f ".deps/matlabprint2.Tpo" ".deps/matlabprint2.Po"; else rm -f ".deps/matlabprint2.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT matlabprint.o -MD -MP -MF ".deps/matlabprint.Tpo" -c -o matlabprint.o matlabprint.cpp; \
    then mv -f ".deps/matlabprint.Tpo" ".deps/matlabprint.Po"; else rm -f ".deps/matlabprint.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT matlabprintformat.o -MD -MP -MF ".deps/matlabprintformat.Tpo" -c -o matlabprintformat.o matlabprintformat.cpp; \
    then mv -f ".deps/matlabprintformat.Tpo" ".deps/matlabprintformat.Po"; else rm -f ".deps/matlabprintformat.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT matlabprintscalar.o -MD -MP -MF ".deps/matlabprintscalar.Tpo" -c -o matlabprintscalar.o matlabprintscalar.cpp; \
    then mv -f ".deps/matlabprintscalar.Tpo" ".deps/matlabprintscalar.Po"; else rm -f ".deps/matlabprintscalar.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT matlabread.o -MD -MP -MF ".deps/matlabread.Tpo" -c -o matlabread.o matlabread.cpp; \
    then mv -f ".deps/matlabread.Tpo" ".deps/matlabread.Po"; else rm -f ".deps/matlabread.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT matlabwrite.o -MD -MP -MF ".deps/matlabwrite.Tpo" -c -o matlabwrite.o matlabwrite.cpp; \
    then mv -f ".deps/matlabwrite.Tpo" ".deps/matlabwrite.Po"; else rm -f ".deps/matlabwrite.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/complexops_inst.o -MD -MP -MF "Templates/.deps/complexops_inst.Tpo" -c -o Templates/complexops_inst.o `test -f 'Templates/complexops_inst.cpp' || echo './'`Templates/complexops_inst.cpp; \
    then mv -f "Templates/.deps/complexops_inst.Tpo" "Templates/.deps/complexops_inst.Po"; else rm -f "Templates/.deps/complexops_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/cvector_inst.o -MD -MP -MF "Templates/.deps/cvector_inst.Tpo" -c -o Templates/cvector_inst.o `test -f 'Templates/cvector_inst.cpp' || echo './'`Templates/cvector_inst.cpp; \
    then mv -f "Templates/.deps/cvector_inst.Tpo" "Templates/.deps/cvector_inst.Po"; else rm -f "Templates/.deps/cvector_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/matrix_inst.o -MD -MP -MF "Templates/.deps/matrix_inst.Tpo" -c -o Templates/matrix_inst.o `test -f 'Templates/matrix_inst.cpp' || echo './'`Templates/matrix_inst.cpp; \
    then mv -f "Templates/.deps/matrix_inst.Tpo" "Templates/.deps/matrix_inst.Po"; else rm -f "Templates/.deps/matrix_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/matrixref_inst.o -MD -MP -MF "Templates/.deps/matrixref_inst.Tpo" -c -o Templates/matrixref_inst.o `test -f 'Templates/matrixref_inst.cpp' || echo './'`Templates/matrixref_inst.cpp; \
    then mv -f "Templates/.deps/matrixref_inst.Tpo" "Templates/.deps/matrixref_inst.Po"; else rm -f "Templates/.deps/matrixref_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/matrixfixed_inst.o -MD -MP -MF "Templates/.deps/matrixfixed_inst.Tpo" -c -o Templates/matrixfixed_inst.o `test -f 'Templates/matrixfixed_inst.cpp' || echo './'`Templates/matrixfixed_inst.cpp; \
    then mv -f "Templates/.deps/matrixfixed_inst.Tpo" "Templates/.deps/matrixfixed_inst.Po"; else rm -f "Templates/.deps/matrixfixed_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/vector_inst.o -MD -MP -MF "Templates/.deps/vector_inst.Tpo" -c -o Templates/vector_inst.o `test -f 'Templates/vector_inst.cpp' || echo './'`Templates/vector_inst.cpp; \
    then mv -f "Templates/.deps/vector_inst.Tpo" "Templates/.deps/vector_inst.Po"; else rm -f "Templates/.deps/vector_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/vectorref_inst.o -MD -MP -MF "Templates/.deps/vectorref_inst.Tpo" -c -o Templates/vectorref_inst.o `test -f 'Templates/vectorref_inst.cpp' || echo './'`Templates/vectorref_inst.cpp; \
    then mv -f "Templates/.deps/vectorref_inst.Tpo" "Templates/.deps/vectorref_inst.Po"; else rm -f "Templates/.deps/vectorref_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/vectorfixed_inst.o -MD -MP -MF "Templates/.deps/vectorfixed_inst.Tpo" -c -o Templates/vectorfixed_inst.o `test -f 'Templates/vectorfixed_inst.cpp' || echo './'`Templates/vectorfixed_inst.cpp; \
    then mv -f "Templates/.deps/vectorfixed_inst.Tpo" "Templates/.deps/vectorfixed_inst.Po"; else rm -f "Templates/.deps/vectorfixed_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/det_inst.o -MD -MP -MF "Templates/.deps/det_inst.Tpo" -c -o Templates/det_inst.o `test -f 'Templates/det_inst.cpp' || echo './'`Templates/det_inst.cpp; \
    then mv -f "Templates/.deps/det_inst.Tpo" "Templates/.deps/det_inst.Po"; else rm -f "Templates/.deps/det_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/symmatrix_inst.o -MD -MP -MF "Templates/.deps/symmatrix_inst.Tpo" -c -o Templates/symmatrix_inst.o `test -f 'Templates/symmatrix_inst.cpp' || echo './'`Templates/symmatrix_inst.cpp; \
    then mv -f "Templates/.deps/symmatrix_inst.Tpo" "Templates/.deps/symmatrix_inst.Po"; else rm -f "Templates/.deps/symmatrix_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/diagmatrix_inst.o -MD -MP -MF "Templates/.deps/diagmatrix_inst.Tpo" -c -o Templates/diagmatrix_inst.o `test -f 'Templates/diagmatrix_inst.cpp' || echo './'`Templates/diagmatrix_inst.cpp; \
    then mv -f "Templates/.deps/diagmatrix_inst.Tpo" "Templates/.deps/diagmatrix_inst.Po"; else rm -f "Templates/.deps/diagmatrix_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/filematrix_inst.o -MD -MP -MF "Templates/.deps/filematrix_inst.Tpo" -c -o Templates/filematrix_inst.o `test -f 'Templates/filematrix_inst.cpp' || echo './'`Templates/filematrix_inst.cpp; \
    then mv -f "Templates/.deps/filematrix_inst.Tpo" "Templates/.deps/filematrix_inst.Po"; else rm -f "Templates/.deps/filematrix_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/filevector_inst.o -MD -MP -MF "Templates/.deps/filevector_inst.Tpo" -c -o Templates/filevector_inst.o `test -f 'Templates/filevector_inst.cpp' || echo './'`Templates/filevector_inst.cpp; \
    then mv -f "Templates/.deps/filevector_inst.Tpo" "Templates/.deps/filevector_inst.Po"; else rm -f "Templates/.deps/filevector_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/fortrancopy_inst.o -MD -MP -MF "Templates/.deps/fortrancopy_inst.Tpo" -c -o Templates/fortrancopy_inst.o `test -f 'Templates/fortrancopy_inst.cpp' || echo './'`Templates/fortrancopy_inst.cpp; \
    then mv -f "Templates/.deps/fortrancopy_inst.Tpo" "Templates/.deps/fortrancopy_inst.Po"; else rm -f "Templates/.deps/fortrancopy_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/matlabprint_inst.o -MD -MP -MF "Templates/.deps/matlabprint_inst.Tpo" -c -o Templates/matlabprint_inst.o `test -f 'Templates/matlabprint_inst.cpp' || echo './'`Templates/matlabprint_inst.cpp; \
    then mv -f "Templates/.deps/matlabprint_inst.Tpo" "Templates/.deps/matlabprint_inst.Po"; else rm -f "Templates/.deps/matlabprint_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/matrixexp_inst.o -MD -MP -MF "Templates/.deps/matrixexp_inst.Tpo" -c -o Templates/matrixexp_inst.o `test -f 'Templates/matrixexp_inst.cpp' || echo './'`Templates/matrixexp_inst.cpp; \
    then mv -f "Templates/.deps/matrixexp_inst.Tpo" "Templates/.deps/matrixexp_inst.Po"; else rm -f "Templates/.deps/matrixexp_inst.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT Templates/sparsematrix_inst.o -MD -MP -MF "Templates/.deps/sparsematrix_inst.Tpo" -c -o Templates/sparsematrix_inst.o `test -f 'Templates/sparsematrix_inst.cpp' || echo './'`Templates/sparsematrix_inst.cpp; \
    then mv -f "Templates/.deps/sparsematrix_inst.Tpo" "Templates/.deps/sparsematrix_inst.Po"; else rm -f "Templates/.deps/sparsematrix_inst.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT NetLib/F77_aloc.o -MD -MP -MF "NetLib/.deps/F77_aloc.Tpo" -c -o NetLib/F77_aloc.o `test -f 'NetLib/F77_aloc.c' || echo './'`NetLib/F77_aloc.c; \
    then mv -f "NetLib/.deps/F77_aloc.Tpo" "NetLib/.deps/F77_aloc.Po"; else rm -f "NetLib/.deps/F77_aloc.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT NetLib/exit.o -MD -MP -MF "NetLib/.deps/exit.Tpo" -c -o NetLib/exit.o `test -f 'NetLib/exit.c' || echo './'`NetLib/exit.c; \
    then mv -f "NetLib/.deps/exit.Tpo" "NetLib/.deps/exit.Po"; else rm -f "NetLib/.deps/exit.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT NetLib/s_cmp.o -MD -MP -MF "NetLib/.deps/s_cmp.Tpo" -c -o NetLib/s_cmp.o `test -f 'NetLib/s_cmp.c' || echo './'`NetLib/s_cmp.c; \
    then mv -f "NetLib/.deps/s_cmp.Tpo" "NetLib/.deps/s_cmp.Po"; else rm -f "NetLib/.deps/s_cmp.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT NetLib/d_lg10.o -MD -MP -MF "NetLib/.deps/d_lg10.Tpo" -c -o NetLib/d_lg10.o `test -f 'NetLib/d_lg10.c' || echo './'`NetLib/d_lg10.c; \
    then mv -f "NetLib/.deps/d_lg10.Tpo" "NetLib/.deps/d_lg10.Po"; else rm -f "NetLib/.deps/d_lg10.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT NetLib/s_cat.o -MD -MP -MF "NetLib/.deps/s_cat.Tpo" -c -o NetLib/s_cat.o `test -f 'NetLib/s_cat.c' || echo './'`NetLib/s_cat.c; \
    then mv -f "NetLib/.deps/s_cat.Tpo" "NetLib/.deps/s_cat.Po"; else rm -f "NetLib/.deps/s_cat.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I..  -I/home/dewayne/Downloads/glow_104/glow_src  -g -O2 -MT NetLib/s_copy.o -MD -MP -MF "Ne
+3  A: 

You are not missing any dependency, the code is simply broken.

The following code:

namespace VW {
  struct Foo {
      friend Foo operator+(const Foo&, const Foo&);
  };
}
VW::Foo VW::operator+(const Foo& lhs, const Foo& rhs) { return lhs; }

produces the same error from gcc-4.1, but compiles with gcc-3.4 (the code was written in 2004, when gcc-3.4 was current).

Fortunately, there is a trivial fix:

namespace VW {
  struct Foo {
      friend Foo operator+(const Foo&, const Foo&);
  };
  Foo operator+(const Foo& lhs, const Foo& rhs); // FIX
}
VW::Foo VW::operator+(const Foo& lhs, const Foo& rhs) { return lhs; }
Employed Russian