0

我正在尝试制作一个名为 VW34 的非常不起眼的应用程序,它是一个使用 openGL 的计算机视觉库。在大多数应用程序成功编译后,我在 make 过程中遇到错误“GeomObjects/point3d.cpp:88: error: 'VW::Point3D VW::operator+(const VW::Point3D&, const VW::Point3D&)' 应该已在“大众”内部声明”。

据说这个代码可以在我的系统(Ubuntu 8.0.4.2)上干净地编译。所以我可能缺少一些依赖,但我不知道是哪个。我正在使用 gcc-4.1 和 automake1.9(根据自述文件需要)。

以下是我对自述文件创建者使用的同一操作系统的全新安装所遵循的安装说明:http: //people.mech.kuleuven.be/~tdelaet/installation_scenlibEXTRA.txt

以下是 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

这是配置的输出:

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

这是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
4

1 回答 1

3

您没有遗漏任何依赖项,代码只是被破坏了。

以下代码:

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

从 gcc-4.1 产生相同的错误,但使用 gcc-3.4 编译(代码是在 2004 年编写的,当时 gcc-3.4 是最新的)。

幸运的是,有一个简单的修复:

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; }
于 2009-05-21T07:04:04.340 回答