From help-octave-request at bevo dot che dot wisc dot edu Sat Sep 4 15:31:50 1999 Subject: Compiling 2.1.14 From: etienne grossmann To: help-octave at bevo dot che dot wisc dot edu CC: etienne at isr dot ist dot utl dot pt Date: Sat, 4 Sep 1999 21:31:20 +0100 (WEST) Hello again, I think I found where the problem was : after a quick inspection of liboctave/mx-inlines.cc, it seemed to me that the "extern" declarations where misplaced, so I removed them. Doing "make" and "make install" then worked. Is this patch needed just by me? ====================================================================== --- liboctave/mx-inlines.cc.090499 Sat Sep 4 20:10:41 1999 +++ liboctave/mx-inlines.cc Sat Sep 4 20:11:11 1999 at @ -42,7 +42,7 @@ VS_OP_FCN (divide, /) #define VS_OP(F, OP, R, V, S) \ - extern template void F ## _vs (R *, const V *, size_t, S); \ + template void F ## _vs (R *, const V *, size_t, S); \ static inline R * \ F (const V *v, size_t n, S s) \ { \ at @ -81,7 +81,7 @@ SV_OP_FCN (divide, /) #define SV_OP(F, OP, R, S, V) \ - extern template void F ## _sv (R *, S, const V *, size_t); \ + template void F ## _sv (R *, S, const V *, size_t); \ static inline R * \ F (S s, const V *v, size_t n) \ { \ at @ -120,7 +120,7 @@ VV_OP_FCN (divide, /) #define VV_OP(F, OP, R, T1, T2) \ - extern template void F ## _vv (R *, const T1 *, const T2 *, size_t); \ + template void F ## _vv (R *, const T1 *, const T2 *, size_t); \ static inline R * \ F (const T1 *v1, const T2 *v2, size_t n) \ { \ ====================================================================== Cheers, Etienne The original error message : > ====================================================================== > c++ -I. -I.. -I../liboctave -I../src -I../libcruft/misc -I../glob -I../glob -DHAVE_CONFIG_H -mieee-fp -fno-rtti -fno-exceptions -fno-implicit-templates -g -O2 -Wall -rdynamic \ > -L.. -u MAIN__ -fPIC -g -o octave \ > octave.o builtins.o ops.o balance.o besselj.o betainc.o chol.o colloc.o dassl.o det.o eig.o expm.o fft.o fft2.o filter.o find.o fsolve.o gammainc.o getgrent.o getpwent.o getrusage.o givens.o hess.o ifft.o ifft2.o inv.o log.o lpsolve.o lsode.o lu.o minmax.o pinv.o qr.o quad.o qz.o rand.o schur.o sort.o svd.o syl.o time.o \ > -L../liboctave -L../libcruft -L../src -Xlinker -rpath -Xlinker /usr/local/lib/octave-2.1.14 \ > ../src/liboctinterp.a ../liboctave/liboctave.a ../libcruft/libcruft.a ../readline/libreadline.a ../kpathsea/libkpathsea.a ../glob/libglob.a \ > -lg2c -lm -L/usr/lib/gcc-lib/i386-linux/2.95 -lm -lncurses -ldl -lm > ../liboctave/liboctave.a(CColVector.o): In function `operator+(ComplexColumnVector const &, double)': > /home/etienne/prog/octave/octave-2.1.14/liboctave/mx-inlines.cc:66: undefined reference to `void add_vs, complex, double>(complex *, complex const *, unsigned int, double)' > > ... many "undefined reference" messages ... > > /home/etienne/prog/octave/octave-2.1.14/liboctave/mx-s-cm.cc:32: undefined reference to `void divide_sv, double, complex >(complex *, double, complex const *, unsigned int)' > collect2: ld returned 1 exit status > ====================================================================== --------------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. To ensure that development continues, see www.che.wisc.edu/octave/giftform.html Instructions for unsubscribing: www.che.wisc.edu/octave/archive.html ---------------------------------------------------------------------