|
View:
New views
20 Messages
—
Rating Filter:
Alert me
|
| < Prev | 1 - 2 | Next > |
|
|
linking liboctave fails (lapack missing?)Hello,
I just tried to build the recent development tip on mingw32 and building fails at linking liboctave with a phletora of missing symbols from the lapack library. looking at the linker command I see that indeed there is no -llapack present. Digging the changelog I find that at revision 9490:3aeb7d881578 $(BLAS_LIBS) has been removed from LINK_DEPS in liboctave/makefile.in I guess it should still be there, since arpack, qrupdate and quite some octave code depends on it. benjamin |
|
|
Re: linking liboctave fails (lapack missing?)Benjamin Lindner wrote:
> Hello, > > I just tried to build the recent development tip on mingw32 and building > fails at linking liboctave with a phletora of missing symbols from the > lapack library. > > looking at the linker command I see that indeed there is no -llapack > present. > > Digging the changelog I find that at revision 9490:3aeb7d881578 > $(BLAS_LIBS) has been removed from LINK_DEPS in liboctave/makefile.in > > I guess it should still be there, since arpack, qrupdate and quite some > octave code depends on it. > I see that there is already a thread covering this topic on the bugs list. Sorry for the double-post. Hovever, liboctave directly uses functinos from lapack, and uses the qrupdate and qrpack library which both depend on lapack, so lapack *should* be listed in LINK_DEPS. benjamin |
|
|
Re: linking liboctave fails (lapack missing?)Benjamin Lindner wrote:
> Benjamin Lindner wrote: >> Hello, >> >> I just tried to build the recent development tip on mingw32 and >> building fails at linking liboctave with a phletora of missing symbols >> from the lapack library. >> >> looking at the linker command I see that indeed there is no -llapack >> present. >> >> Digging the changelog I find that at revision 9490:3aeb7d881578 >> $(BLAS_LIBS) has been removed from LINK_DEPS in liboctave/makefile.in >> >> I guess it should still be there, since arpack, qrupdate and quite >> some octave code depends on it. >> > > I see that there is already a thread covering this topic on the bugs > list. Sorry for the double-post. > > Hovever, liboctave directly uses functinos from lapack, and uses the > qrupdate and qrpack library which both depend on lapack, so lapack > *should* be listed in LINK_DEPS. > adding $(BLAS_LIBS) in liboctave's link depencendies. benjamin # HG changeset patch # User Benjamin Lindner <lindnerb@...> # Date 1250195832 -7200 # Node ID c8c7b48e2cf4ddbf29dbec62003a66abfa7103bd # Parent 54055478b3bb512107fe558a11f822fca76cd972 add BLAS_LIBS to liboctave's LINK_DEPS diff -r 54055478b3bb -r c8c7b48e2cf4 liboctave/ChangeLog --- a/liboctave/ChangeLog Thu Aug 13 20:58:28 2009 +0200 +++ b/liboctave/ChangeLog Thu Aug 13 22:37:12 2009 +0200 @@ -1,3 +1,7 @@ +2009-08-13 Benjamin Lindner <lindnerb@...> + + * Makefile.in: Include $(BLAS_LIBS) in liboctave's link depencendies + 2009-08-12 Jaroslav Hajek <highegg@...> * Makefile.in: Include LDFLAGS when linking shared executable. diff -r 54055478b3bb -r c8c7b48e2cf4 liboctave/Makefile.in --- a/liboctave/Makefile.in Thu Aug 13 20:58:28 2009 +0200 +++ b/liboctave/Makefile.in Thu Aug 13 22:37:12 2009 +0200 @@ -39,7 +39,7 @@ -L../libcruft $(LIBCRUFT) \ $(CHOLMOD_LIBS) $(UMFPACK_LIBS) $(AMD_LIBS) $(CAMD_LIBS) \ $(COLAMD_LIBS) $(CCOLAMD_LIBS) $(CXSPARSE_LIBS) $(ARPACK_LIBS) \ - $(QRUPDATE_LIBS) $(FFTW_LIBS) $(READLINE_LIBS) $(TERM_LIBS) $(LIBGLOB) \ + $(QRUPDATE_LIBS) $(BLAS_LIBS) $(FFTW_LIBS) $(READLINE_LIBS) $(TERM_LIBS) $(LIBGLOB) \ $(REGEX_LIBS) $(DL_LIBS) $(LIBS) $(FLIBS) $(PTHREAD_LIBS) MATRIX_INC := Array.h Array2.h Array3.h ArrayN.h DiagArray2.h \ |
|
|
Re: linking liboctave fails (lapack missing?)On 13-Aug-2009, Benjamin Lindner wrote:
| Benjamin Lindner wrote: | > Benjamin Lindner wrote: | >> Hello, | >> | >> I just tried to build the recent development tip on mingw32 and | >> building fails at linking liboctave with a phletora of missing symbols | >> from the lapack library. | >> | >> looking at the linker command I see that indeed there is no -llapack | >> present. | >> | >> Digging the changelog I find that at revision 9490:3aeb7d881578 | >> $(BLAS_LIBS) has been removed from LINK_DEPS in liboctave/makefile.in | >> | >> I guess it should still be there, since arpack, qrupdate and quite | >> some octave code depends on it. | >> | > | > I see that there is already a thread covering this topic on the bugs | > list. Sorry for the double-post. | > | > Hovever, liboctave directly uses functinos from lapack, and uses the | > qrupdate and qrpack library which both depend on lapack, so lapack | > *should* be listed in LINK_DEPS. | > | | The attached changeset fixes the linker issues for mingw32 platform by | adding $(BLAS_LIBS) in liboctave's link depencendies. I made this change. It would be helpful if people building Octave on Windows and OS X systems could configure and build the latest Octave sources on and send a list of symbols that are unresolved when creating the libcruft, liboctave, liboctinterp shared libraries, when linking the Octave executable file, and when building the .oct files. When building the liboctinterp shared library, is it necesary to explicitly list all of the libraries that are linked with liboctave? Or are only some required, and if so, which ones, and why only those? Thanks, jwe |
|
|
Re: linking liboctave fails (lapack missing?)On Fri, Aug 14, 2009 at 3:12 PM, John W. Eaton<jwe@...> wrote:
> I made this change. > > It would be helpful if people building Octave on Windows and OS X > systems could configure and build the latest Octave sources on and > send a list of symbols that are unresolved when creating the libcruft, > liboctave, liboctinterp shared libraries, when linking the Octave > executable file, and when building the .oct files. > > When building the liboctinterp shared library, is it necesary to > explicitly list all of the libraries that are linked with liboctave? > Or are only some required, and if so, which ones, and why only those? Under Windows, usually you only need to list the libraries whose symbols are actually used in the target library. If the target library does not reference any symbol from a dependent lib, even if this dependent lib is required by another dependent lib, it does not need to be listed. Michael. |
|
|
Re: linking liboctave fails (lapack missing?)John W. Eaton schrieb:
> On 13-Aug-2009, Benjamin Lindner wrote: > > | Benjamin Lindner wrote: > | > Benjamin Lindner wrote: > | >> Hello, > | >> > | >> I just tried to build the recent development tip on mingw32 and > | >> building fails at linking liboctave with a phletora of missing symbols > | >> from the lapack library. > | >> > | >> looking at the linker command I see that indeed there is no -llapack > | >> present. > | >> > | >> Digging the changelog I find that at revision 9490:3aeb7d881578 > | >> $(BLAS_LIBS) has been removed from LINK_DEPS in liboctave/makefile.in > | >> > | >> I guess it should still be there, since arpack, qrupdate and quite > | >> some octave code depends on it. > | >> > | > > | > I see that there is already a thread covering this topic on the bugs > | > list. Sorry for the double-post. > | > > | > Hovever, liboctave directly uses functinos from lapack, and uses the > | > qrupdate and qrpack library which both depend on lapack, so lapack > | > *should* be listed in LINK_DEPS. > | > > | > | The attached changeset fixes the linker issues for mingw32 platform by > | adding $(BLAS_LIBS) in liboctave's link depencendies. > > I made this change. > > It would be helpful if people building Octave on Windows and OS X > systems could configure and build the latest Octave sources on and > send a list of symbols that are unresolved when creating the libcruft, > liboctave, liboctinterp shared libraries, when linking the Octave > executable file, and when building the .oct files. Ok, I'll be one of those OS X people. I always do an ./autogen.sh before building (so I did this time). Now, ./configure fails with the message: ./configure: line 9350: syntax error near unexpected token `,' ./configure: line 9350: ` m4_ifnblank(, AC_LANG_PUSH())' which in my configure script is TEXINFO_QHULL= warn_qhull="Qhull library not found -- this will result in loss of functionality of some geometry functions." if test -n "$QHULL_LIBS"; then save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$QHULL_CPPFLAGS $CPPFLAGS" m4_ifnblank(, AC_LANG_PUSH()) if I have a look at configure.in's part of this code I see the new macro OCTAVE_CHECK_LIBRARY with the sixth argument LANG being []. But I also see this when I do ./autogen.sh: calling autoconf and autoheader... /Users/Thomas/Development/octave configure.in:40: error: possibly undefined macro: AC_DEFINE If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. configure.in:63: error: possibly undefined macro: AS_HELP_STRING configure.in:617: error: possibly undefined macro: AC_LANG_PUSH configure.in:665: error: possibly undefined macro: AC_LANG_POP configure:1647: error: possibly undefined macro: m4_ifblank configure:9353: error: possibly undefined macro: m4_ifnblank configure:9565: error: possibly undefined macro: m4_toupper ? MacMini:~/Development/octave Me$ autoconf --version autoconf (GNU Autoconf) 2.62 Copyright (C) 2008 Free Software Foundation, Inc. License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/old-licenses/gpl-2.0.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by David J. MacKenzie and Akim Demaille. MacMini:~/Development/octave Me$ autoheader --version autoheader (GNU Autoconf) 2.62 Copyright (C) 2008 Free Software Foundation, Inc. License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/old-licenses/gpl-2.0.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Roland McGrath and Akim Demaille. > When building the liboctinterp shared library, is it necesary to > explicitly list all of the libraries that are linked with liboctave? > Or are only some required, and if so, which ones, and why only those? > > Thanks, > > jwe |
|
|
Re: linking liboctave fails (lapack missing?)John W. Eaton wrote:
> I made this change. > > It would be helpful if people building Octave on Windows and OS X > systems could configure and build the latest Octave sources on and > send a list of symbols that are unresolved when creating the libcruft, > liboctave, liboctinterp shared libraries, when linking the Octave > executable file, and when building the .oct files. > On mingw32/msys, calling ./autogen.sh now displays calling autoconf and autoheader... /octmgw32/octave/octave-3.3.x configure.in:40: error: possibly undefined macro: AC_DEFINE If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. configure.in:63: error: possibly undefined macro: AS_HELP_STRING configure.in:617: error: possibly undefined macro: AC_LANG_PUSH configure.in:665: error: possibly undefined macro: AC_LANG_POP configure:1511: error: possibly undefined macro: m4_ifblank configure:9276: error: possibly undefined macro: m4_ifnblank configure:9479: error: possibly undefined macro: m4_toupper /octmgw32/octave/octave-3.3.x/scripts skipping autoheader in ./scripts done and a subsequent call to ./configure fails with checking for sin in -lm... yes /octmgw32/octave/octave-3.3.x/configure: line 9276: syntax error near unexpected token `,' /octmgw32/octave/octave-3.3.x/configure: line 9276: ` m4_ifnblank(, AC_LANG_PUSH())' ? $ autoconf --version autoconf (GNU Autoconf) 2.61 Copyright (C) 2006 Free Software Foundation, Inc. This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law. Written by David J. MacKenzie and Akim Demaille. $ autoheader --version autoheader (GNU Autoconf) 2.61 Copyright (C) 2006 Free Software Foundation, Inc. This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law. Written by Roland McGrath and Akim Demaille. benjamin |
|
|
Re: linking liboctave fails (lapack missing?)Benjamin Lindner wrote:
> John W. Eaton wrote: >> I made this change. >> >> It would be helpful if people building Octave on Windows and OS X >> systems could configure and build the latest Octave sources on and >> send a list of symbols that are unresolved when creating the libcruft, >> liboctave, liboctinterp shared libraries, when linking the Octave >> executable file, and when building the .oct files. >> > > On mingw32/msys, calling ./autogen.sh now displays > > calling autoconf and autoheader... > /octmgw32/octave/octave-3.3.x > configure.in:40: error: possibly undefined macro: AC_DEFINE > If this token and others are legitimate, please use m4_pattern_allow. > See the Autoconf documentation. > configure.in:63: error: possibly undefined macro: AS_HELP_STRING > configure.in:617: error: possibly undefined macro: AC_LANG_PUSH > configure.in:665: error: possibly undefined macro: AC_LANG_POP > configure:1511: error: possibly undefined macro: m4_ifblank > configure:9276: error: possibly undefined macro: m4_ifnblank > configure:9479: error: possibly undefined macro: m4_toupper > /octmgw32/octave/octave-3.3.x/scripts > skipping autoheader in ./scripts > done > > and a subsequent call to ./configure fails with > > checking for sin in -lm... yes > /octmgw32/octave/octave-3.3.x/configure: line 9276: syntax error near > unexpected token `,' > /octmgw32/octave/octave-3.3.x/configure: line 9276: ` m4_ifnblank(, > AC_LANG_PUSH())' > > ? > > $ autoconf --version > autoconf (GNU Autoconf) 2.61 > Copyright (C) 2006 Free Software Foundation, Inc. > This is free software. You may redistribute copies of it under the > terms of > the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. > There is NO WARRANTY, to the extent permitted by law. > > Written by David J. MacKenzie and Akim Demaille. > > $ autoheader --version > autoheader (GNU Autoconf) 2.61 > Copyright (C) 2006 Free Software Foundation, Inc. > This is free software. You may redistribute copies of it under the > terms of > the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. > There is NO WARRANTY, to the extent permitted by law. > > Written by Roland McGrath and Akim Demaille. > > benjamin > I also tried with updated versions of msys and tools, but the same errors occur. $ autoheader --version autoheader (GNU Autoconf) 2.63 Copyright (C) 2008 Free Software Foundation, Inc. License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/old-licenses/gpl-2.0.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Roland McGrath and Akim Demaille. $ automake --version automake (GNU automake) 1.11 Copyright (C) 2009 Free Software Foundation, Inc. License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Tom Tromey <tromey@...> and Alexandre Duret-Lutz <adl@...>. benjamin |
|
|
Re: linking liboctave fails (lapack missing?)Benjamin Lindner schrieb:
> I also tried with updated versions of msys and tools, but the same > errors occur. > > $ autoheader --version > autoheader (GNU Autoconf) 2.63 > Copyright (C) 2008 Free Software Foundation, Inc. > License GPLv2+: GNU GPL version 2 or later > <http://gnu.org/licenses/old-licenses/gpl-2.0.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > > Written by Roland McGrath and Akim Demaille. > > $ automake --version > automake (GNU automake) 1.11 > Copyright (C) 2009 Free Software Foundation, Inc. > License GPLv2+: GNU GPL version 2 or later > <http://gnu.org/licenses/gpl-2.0.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > > Written by Tom Tromey <tromey@...> > and Alexandre Duret-Lutz <adl@...>. > > benjamin The problems do come somewhere from inside of "m4_ifnblank", "m4_ifblank" and "m4_toupper" in file aclocal.m4 and macro OCTAVE_CHECK_LIBRARY. It seems that these functions don't like any of AC_DEFINE, AC_LANG_POP etc. as an argument, but I don't get it corrected... Best regards Thomas |
|
|
Re: linking liboctave fails (lapack missing?)Thomas Treichl wrote:
> Benjamin Lindner schrieb: >> I also tried with updated versions of msys and tools, but the same >> errors occur. >> >> $ autoheader --version >> autoheader (GNU Autoconf) 2.63 >> Copyright (C) 2008 Free Software Foundation, Inc. >> License GPLv2+: GNU GPL version 2 or later >> <http://gnu.org/licenses/old-licenses/gpl-2.0.html> >> This is free software: you are free to change and redistribute it. >> There is NO WARRANTY, to the extent permitted by law. >> >> Written by Roland McGrath and Akim Demaille. >> >> $ automake --version >> automake (GNU automake) 1.11 >> Copyright (C) 2009 Free Software Foundation, Inc. >> License GPLv2+: GNU GPL version 2 or later >> <http://gnu.org/licenses/gpl-2.0.html> >> This is free software: you are free to change and redistribute it. >> There is NO WARRANTY, to the extent permitted by law. >> >> Written by Tom Tromey <tromey@...> >> and Alexandre Duret-Lutz <adl@...>. >> >> benjamin > > The problems do come somewhere from inside of "m4_ifnblank", > "m4_ifblank" and "m4_toupper" in file aclocal.m4 and macro > OCTAVE_CHECK_LIBRARY. It seems that these functions don't like any of > AC_DEFINE, AC_LANG_POP etc. as an argument, but I don't get it corrected... > As a wild guess, can it have something to do with the version of perl or m4 used? $ perl --version This is perl, v5.6.1 built for msys $ m4 --version GNU M4 1.4.7 benjamin |
|
|
Re: linking liboctave fails (lapack missing?)Benjamin Lindner schrieb:
> Thomas Treichl wrote: >> Benjamin Lindner schrieb: >>> I also tried with updated versions of msys and tools, but the same >>> errors occur. >>> >>> $ autoheader --version >>> autoheader (GNU Autoconf) 2.63 >>> Copyright (C) 2008 Free Software Foundation, Inc. >>> License GPLv2+: GNU GPL version 2 or later >>> <http://gnu.org/licenses/old-licenses/gpl-2.0.html> >>> This is free software: you are free to change and redistribute it. >>> There is NO WARRANTY, to the extent permitted by law. >>> >>> Written by Roland McGrath and Akim Demaille. >>> >>> $ automake --version >>> automake (GNU automake) 1.11 >>> Copyright (C) 2009 Free Software Foundation, Inc. >>> License GPLv2+: GNU GPL version 2 or later >>> <http://gnu.org/licenses/gpl-2.0.html> >>> This is free software: you are free to change and redistribute it. >>> There is NO WARRANTY, to the extent permitted by law. >>> >>> Written by Tom Tromey <tromey@...> >>> and Alexandre Duret-Lutz <adl@...>. >>> >>> benjamin >> >> The problems do come somewhere from inside of "m4_ifnblank", >> "m4_ifblank" and "m4_toupper" in file aclocal.m4 and macro >> OCTAVE_CHECK_LIBRARY. It seems that these functions don't like any of >> AC_DEFINE, AC_LANG_POP etc. as an argument, but I don't get it >> corrected... >> > > As a wild guess, can it have something to do with the version of perl or > m4 used? > > $ perl --version > This is perl, v5.6.1 built for msys > $ m4 --version > GNU M4 1.4.7 > > benjamin > I don't know Benjamin, mine are not very much newer: MacMini:~/Development/octave Me$ perl --version This is perl, v5.8.6 built for darwin-thread-multi-2level (with 5 registered patches, see perl -V for more detail) Copyright 1987-2004, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using `man perl' or `perldoc perl'. If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page. MacMini:~/Development/octave Me$ m4 --version m4 (GNU M4) 1.4.11 Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Rene' Seindal. Anybody seeing those configure problems on Linux? |
|
|
Re: linking liboctave fails (lapack missing?)Benjamin Lindner wrote:
> Thomas Treichl wrote: >> Benjamin Lindner schrieb: >>> I also tried with updated versions of msys and tools, but the same >>> errors occur. >>> >>> $ autoheader --version >>> autoheader (GNU Autoconf) 2.63 >>> Copyright (C) 2008 Free Software Foundation, Inc. >>> License GPLv2+: GNU GPL version 2 or later >>> <http://gnu.org/licenses/old-licenses/gpl-2.0.html> >>> This is free software: you are free to change and redistribute it. >>> There is NO WARRANTY, to the extent permitted by law. >>> >>> Written by Roland McGrath and Akim Demaille. >>> >>> $ automake --version >>> automake (GNU automake) 1.11 >>> Copyright (C) 2009 Free Software Foundation, Inc. >>> License GPLv2+: GNU GPL version 2 or later >>> <http://gnu.org/licenses/gpl-2.0.html> >>> This is free software: you are free to change and redistribute it. >>> There is NO WARRANTY, to the extent permitted by law. >>> >>> Written by Tom Tromey <tromey@...> >>> and Alexandre Duret-Lutz <adl@...>. >>> >>> benjamin >> >> The problems do come somewhere from inside of "m4_ifnblank", >> "m4_ifblank" and "m4_toupper" in file aclocal.m4 and macro >> OCTAVE_CHECK_LIBRARY. It seems that these functions don't like any of >> AC_DEFINE, AC_LANG_POP etc. as an argument, but I don't get it >> corrected... >> > > As a wild guess, can it have something to do with the version of perl or > m4 used? > > $ perl --version > This is perl, v5.6.1 built for msys > $ m4 --version > GNU M4 1.4.7 > Too wild a guess, the macro m4_ifnblank has been introduced in version 2.64. there is only 2.63 available on msys, so no wonder it fails, sigh benjamin |
|
|
Re: linking liboctave fails (lapack missing?)Benjamin Lindner schrieb:
> Benjamin Lindner wrote: >> Thomas Treichl wrote: >>> Benjamin Lindner schrieb: >>>> I also tried with updated versions of msys and tools, but the same >>>> errors occur. >>>> >>>> $ autoheader --version >>>> autoheader (GNU Autoconf) 2.63 >>>> Copyright (C) 2008 Free Software Foundation, Inc. >>>> License GPLv2+: GNU GPL version 2 or later >>>> <http://gnu.org/licenses/old-licenses/gpl-2.0.html> >>>> This is free software: you are free to change and redistribute it. >>>> There is NO WARRANTY, to the extent permitted by law. >>>> >>>> Written by Roland McGrath and Akim Demaille. >>>> >>>> $ automake --version >>>> automake (GNU automake) 1.11 >>>> Copyright (C) 2009 Free Software Foundation, Inc. >>>> License GPLv2+: GNU GPL version 2 or later >>>> <http://gnu.org/licenses/gpl-2.0.html> >>>> This is free software: you are free to change and redistribute it. >>>> There is NO WARRANTY, to the extent permitted by law. >>>> >>>> Written by Tom Tromey <tromey@...> >>>> and Alexandre Duret-Lutz <adl@...>. >>>> >>>> benjamin >>> >>> The problems do come somewhere from inside of "m4_ifnblank", >>> "m4_ifblank" and "m4_toupper" in file aclocal.m4 and macro >>> OCTAVE_CHECK_LIBRARY. It seems that these functions don't like any of >>> AC_DEFINE, AC_LANG_POP etc. as an argument, but I don't get it >>> corrected... >>> >> >> As a wild guess, can it have something to do with the version of perl >> or m4 used? >> >> $ perl --version >> This is perl, v5.6.1 built for msys >> $ m4 --version >> GNU M4 1.4.7 >> > > Too wild a guess, > the macro m4_ifnblank has been introduced in version 2.64. > there is only 2.63 available on msys, so no wonder it fails, sigh > > benjamin Ha, true ;o) This fixes all the ./autogen.sh problems. There is no error left anymore, so AC_PREREQ(2.60) of configure.in should be changed to AC_PREREQ(2.64). Best regards Thomas |
|
|
Re: linking liboctave fails (lapack missing?)John W. Eaton schrieb:
> It would be helpful if people building Octave on Windows and OS X > systems could configure and build the latest Octave sources on and > send a list of symbols that are unresolved when creating the libcruft, > liboctave, liboctinterp shared libraries, when linking the Octave > executable file, and when building the .oct files. Here are the results for OS X (currently I cannot tell you anything about the CURL and GLPK dependencies - these libs are not found by ./configure at the moment - seems because of missing -lz in the test procedure): libcruft.dylib, liboctave.dylib: no unresolved symbols liboctinterp.dylib: (cf. attached file liboctave_symbols.txt.gz) for manual compilation I needed to add -L../libcruft -lcruft -lreadline -lfftw3 -lfftw3f -lexpat octave: (cf. attached file liboctave_symbols.txt.gz) for manual compilation I needed to add -lz -lhdf5 -lreadline -lfreetype -lfontconfig -lfftw3 -lfftw3f -lexpat dld files: (cf. attached file liboctave_symbols.txt.gz) Thomas |
|
|
Re: linking liboctave fails (lapack missing?)John W. Eaton wrote:
> On 13-Aug-2009, Benjamin Lindner wrote: > > | Benjamin Lindner wrote: > | > Benjamin Lindner wrote: > | >> Hello, > | >> > | >> I just tried to build the recent development tip on mingw32 and > | >> building fails at linking liboctave with a phletora of missing symbols > | >> from the lapack library. > | >> > | >> looking at the linker command I see that indeed there is no -llapack > | >> present. > | >> > | >> Digging the changelog I find that at revision 9490:3aeb7d881578 > | >> $(BLAS_LIBS) has been removed from LINK_DEPS in liboctave/makefile.in > | >> > | >> I guess it should still be there, since arpack, qrupdate and quite > | >> some octave code depends on it. > | >> > | > > | > I see that there is already a thread covering this topic on the bugs > | > list. Sorry for the double-post. > | > > | > Hovever, liboctave directly uses functinos from lapack, and uses the > | > qrupdate and qrpack library which both depend on lapack, so lapack > | > *should* be listed in LINK_DEPS. > | > > | > | The attached changeset fixes the linker issues for mingw32 platform by > | adding $(BLAS_LIBS) in liboctave's link depencendies. > > I made this change. > > It would be helpful if people building Octave on Windows and OS X > systems could configure and build the latest Octave sources on and > send a list of symbols that are unresolved when creating the libcruft, > liboctave, liboctinterp shared libraries, when linking the Octave > executable file, and when building the .oct files. http://hg.savannah.gnu.org/hgweb/octave/rev/691545147aca configure completes. However the build immediately fails at octave-bug.c with octave-bug.cc: In function 'int main(int, char**)': octave-bug.cc:102: error: expected primary-expression before '%' token octave-bug.cc:102: error: 'OCTAVE_CONF_FFTW_LIBS' was not declared in this scope octave-bug.cc:102: error: expected primary-expression before ';' token Looking at the source of octave-bug.c at line 102 I find vars["FFTW_LIBS"] = %OCTAVE_CONF_FFTW_LIBS%; This looks like a missing replacement of conigure-time settings. The same goes for mkoctfile.cc.in BTW the shell script versions of octave-bug and mkoctfile will also need patching. --- a/mkoctfile.cc.in Sat Aug 15 10:02:51 2009 +0200 +++ b/mkoctfile.cc.in Sat Aug 15 10:17:55 2009 +0200 @@ -224,7 +224,7 @@ vars["READLINE_LIBS"] = "-lreadline"; vars["LIBCRUFT"] = "-lcruft"; vars["BLAS_LIBS"] = get_variable ("BLAS_LIBS", %OCTAVE_CONF_BLAS_LIBS%); - vars["FFTW_LIBS"] = get_variable ("FFTW_LIBS", %OCTAVE_CONF_FFTW_LIBS%); + vars["FFTW_LIBS"] = get_variable ("FFTW_LIBS", %OCTAVE_CONF_FFTW3_LIBS%); vars["LIBS"] = get_variable ("LIBS", %OCTAVE_CONF_LIBS%); vars["CXXLIBS"] = get_variable ("CXXLIBS", %OCTAVE_CONF_CXXLIBS%); vars["FLIBS"] = get_variable ("FLIBS", %OCTAVE_CONF_FLIBS%); diff -r 3f6b1f9238d3 octave-bug.cc.in --- a/octave-bug.cc.in Sat Aug 15 10:02:51 2009 +0200 +++ b/octave-bug.cc.in Sat Aug 15 10:17:55 2009 +0200 @@ -99,7 +99,7 @@ vars["RLD_FLAG"] = %OCTAVE_CONF_RLD_FLAG%; vars["LIBS"] = %OCTAVE_CONF_LIBS%; vars["BLAS_LIBS"] = %OCTAVE_CONF_BLAS_LIBS%; - vars["FFTW_LIBS"] = %OCTAVE_CONF_FFTW_LIBS%; + vars["FFTW_LIBS"] = %OCTAVE_CONF_FFTW3_LIBS%; vars["LEXLIB"] = %OCTAVE_CONF_LEXLIB%; vars["LIBGLOB"] = %OCTAVE_CONF_LIBGLOB%; vars["DEFS"] = %OCTAVE_CONF_DEFS%; However, I see that many new configure-time variables have been introduced, and thus octave-bug and mkoctfile and their .c counterparts need to be updated. This is I guess best done when the configure changes have settled. Now for the undefined reference linker errors: Linking libcruft.dll and liboctave.dll succeed. Linking liboctinterp.dll fails with the missing symbols attached: (I omitted double errors in the same object file, otherwise the list is *really* long and does not contain additional information): The first group stems from $(LIBCRUFT) missing as link dependency. The second group stems from missing -lgdi32 (GetDeviceCaps) -liberty (mkstemps) The first is the windows system GDI library and the second is the mingw/gcc support library. Both are added to $LIBS during configure stage for the mingw platform The third group stems from $(FLIBS) missing as link dependency. To link successfully I have to do OCTINTERP_LINK_DEPS = $(RLD_FLAG) -L../liboctave $(LIBOCTAVE) -L../libcruft $(LIBCRUFT) \ $(HDF5_LIBS) $(ZLIB_LIBS) $(X11_LIBS) $(OPENGL_LIBS) $(CARBON_LIBS) \ $(LIBS) $(FLIBS) Now for DLD-functions: Here the undefined reference list is even longer. I attached the full output. I need to add $(LIBOCTAVE) to OCT_LINK_DEPS, i.e. OCT_LINK_DEPS = $(RLD_FLAG) -L../liboctave $(LIBOCTAVE) -L. $(LIBOCTINTERP) then the link errors reduce to (exemplary) cellfun.o:cellfun.cc:(.text+0x2d95): undefined reference to `octave_signal_caught' cellfun.o:cellfun.cc:(.text+0x2da4): undefined reference to `octave_handle_signal' which indicates again that $(LIBCRUFT) is missing. Changing to OCT_LINK_DEPS = $(RLD_FLAG) -L../libcruft $(LIBCRUFT) -L../liboctave $(LIBOCTAVE) -L. $(LIBOCTINTERP) fixes it. Then I get the errors attached in dld-link-errors-2.txt: I need the following changes for successful linking chol.oct: OCT_LINK_DEPS += $(QRUPDATE_LDFLAGS) $(QRUPDATE_LIBS) $(CHOLMOD_LIBS) (add $(CHOLMOD_LIBS)) eigs.oct: OCT_LINK_DEPS += $(ARPACK_LDFLAGS) $(ARPACK_LIBS) $(CHOLMOD_LIBS) $(BLAS_LIBS) (add $(CHOLMOD_LIBS) $(BLAS_LIBS)) ccolamd.oct : OCT_LINK_DEPS += $(CCOLAMD_LIBS) qz.oct : OCT_LINK_DEPS += $(BLAS_LIBS) symbfact.oct : OCT_LINK_DEPS += $(CHOLMOD_LIBS) benjamin data.o:data.cc:(.text+0x111): undefined reference to `octave_signal_caught' debug.o:debug.cc:(.text+0x3d40): undefined reference to `octave_throw_interrupt_exception' gl-render.o:gl-render.cc:(.text+0x46e2): undefined reference to `current_liboctave_error_handler' graphics.o:graphics.cc:(.text+0x46856): undefined reference to `octave_interrupt_immediately' graphics.o:graphics.cc:(.text+0x47228): undefined reference to `octave_exception_state' graphics.o:graphics.cc:(.text+0x47237): undefined reference to `octave_jump_to_enclosing_context' gripes.o:gripes.cc:(.text+0x9d): undefined reference to `octave_exception_state' input.o:input.cc:(.text+0x827): undefined reference to `octave_signal_caught' input.o:input.cc:(.text+0x96b): undefined reference to `octave_handle_signal' lex.o:lex.cc:(.text+0x6b3): undefined reference to `octave_signal_caught' lex.o:lex.cc:(.text+0x6bc): undefined reference to `octave_handle_signal' ls-mat-ascii.o:ls-mat-ascii.cc:(.text+0xabf): undefined reference to `octave_signal_caught' ls-mat-ascii.o:ls-mat-ascii.cc:(.text+0xac8): undefined reference to `octave_handle_signal' ls-mat5.o:ls-mat5.cc:(.text+0x260): undefined reference to `current_liboctave_error_handler' oct-stream.o:oct-stream.cc:(.text+0x7acf): undefined reference to `octave_signal_caught' oct-stream.o:oct-stream.cc:(.text+0x7ad8): undefined reference to `octave_handle_signal' oct-stream.o:oct-stream.cc:(.text$_ZN13octave_stream5writeI10octave_intIyEEEiRK5ArrayIT_EiN13oct_data_conv9data_typeEiN13oct_mach_info12float_formatE[int octave_stream::write<octave_int<unsigned long long> >(Array<octave_int<unsigned long long> > const&, int, oct_data_conv::data_type, int, oct_mach_info::float_format)]+0xae): undefined reference to `current_liboctave_error_handler' octave.o:octave.cc:(.text+0xa9): undefined reference to `octave_throw_execution_exception' octave.o:octave.cc:(.text+0x1a1): undefined reference to `octave_save_signal_mask' octave.o:octave.cc:(.text+0x1ae): undefined reference to `octave_signal_hook' octave.o:octave.cc:(.text+0x1b8): undefined reference to `octave_interrupt_hook' octave.o:octave.cc:(.text+0x1c2): undefined reference to `octave_bad_alloc_hook' octave.o:octave.cc:(.text+0x310f): undefined reference to `set_liboctave_error_handler' octave.o:octave.cc:(.text+0x311b): undefined reference to `set_liboctave_warning_handler' octave.o:octave.cc:(.text+0x3127): undefined reference to `set_liboctave_warning_with_id_handler' pr-output.o:pr-output.cc:(.text+0x1cb4): undefined reference to `octave_signal_caught' pr-output.o:pr-output.cc:(.text+0x1cbd): undefined reference to `octave_handle_signal' sighandlers.o:sighandlers.cc:(.text+0xa90): undefined reference to `octave_interrupt_immediately' sighandlers.o:sighandlers.cc:(.text+0xaab): undefined reference to `octave_interrupt_state' sighandlers.o:sighandlers.cc:(.text+0xab1): undefined reference to `octave_signal_caught' sighandlers.o:sighandlers.cc:(.text+0xbda): undefined reference to `octave_jump_to_enclosing_context' sighandlers.o:sighandlers.cc:(.text+0xc18): undefined reference to `w32_raise' sighandlers.o:sighandlers.cc:(.text+0xc5b): undefined reference to `w32_in_main_thread' sighandlers.o:sighandlers.cc:(.text+0xc6c): undefined reference to `w32_raise' sparse-xdiv.o:sparse-xdiv.cc:(.text+0x4a6): undefined reference to `octave_signal_caught' sparse-xdiv.o:sparse-xdiv.cc:(.text+0x4af): undefined reference to `octave_handle_signal' sparse-xpow.o:sparse-xpow.cc:(.text+0x252): undefined reference to `octave_signal_caught' sparse-xpow.o:sparse-xpow.cc:(.text+0x25b): undefined reference to `octave_handle_signal' sysdep.o:sysdep.cc:(.text+0x49a): undefined reference to `w32_sigint_init' sysdep.o:sysdep.cc:(.text+0x2ad): undefined reference to `w32_raise_final' toplev.o:toplev.cc:(.text+0x1bf): undefined reference to `octave_interrupt_immediately' toplev.o:toplev.cc:(.text+0x1c9): undefined reference to `octave_interrupt_state' toplev.o:toplev.cc:(.text+0x1d3): undefined reference to `octave_signal_caught' toplev.o:toplev.cc:(.text+0x1dd): undefined reference to `octave_exception_state' toplev.o:toplev.cc:(.text+0x1e6): undefined reference to `octave_restore_signal_mask' toplev.o:toplev.cc:(.text+0x20da): undefined reference to `octave_save_signal_mask' toplev.o:toplev.cc:(.text+0x20e7): undefined reference to `octave_signal_hook' toplev.o:toplev.cc:(.text+0x20f1): undefined reference to `octave_interrupt_hook' toplev.o:toplev.cc:(.text+0x20fb): undefined reference to `octave_bad_alloc_hook' toplev.o:toplev.cc:(.text+0x241d): undefined reference to `octave_handle_signal' toplev.o:toplev.cc:(.text+0x3d0f): undefined reference to `octave_throw_interrupt_exception' utils.o:utils.cc:(.text+0x1bc): undefined reference to `octave_save_current_context' utils.o:utils.cc:(.text+0x1c3): undefined reference to `current_context' utils.o:utils.cc:(.text+0x1d9): undefined reference to `octave_interrupt_immediately' utils.o:utils.cc:(.text+0x20f): undefined reference to `octave_restore_current_context' utils.o:utils.cc:(.text+0x2e3): undefined reference to `octave_rethrow_exception' utils.o:utils.cc:(.text+0x2f5): undefined reference to `octave_interrupt_immediately' xdiv.o:xdiv.cc:(.text+0x1cc): undefined reference to `octave_signal_caught' xdiv.o:xdiv.cc:(.text+0x1d5): undefined reference to `octave_handle_signal' ov-re-mat.o:ov-re-mat.cc:(.text+0x2ae): undefined reference to `octave_signal_caught' ov-re-mat.o:ov-re-mat.cc:(.text+0x2b7): undefined reference to `octave_handle_signal' ov-cx-mat.o:ov-cx-mat.cc:(.text+0x17c1): undefined reference to `octave_signal_caught' ov-cx-mat.o:ov-cx-mat.cc:(.text+0x17ca): undefined reference to `octave_handle_signal' ov-cell.o:ov-cell.cc:(.text+0x7ec2): undefined reference to `octave_signal_caught' ov-cell.o:ov-cell.cc:(.text+0x7ecb): undefined reference to `octave_handle_signal' ov-flt-re-mat.o:ov-flt-re-mat.cc:(.text+0x2f7): undefined reference to `octave_signal_caught' ov-flt-re-mat.o:ov-flt-re-mat.cc:(.text+0x300): undefined reference to `octave_handle_signal' ov-flt-cx-mat.o:ov-flt-cx-mat.cc:(.text+0x4221): undefined reference to `octave_handle_signal' ov-flt-cx-mat.o:ov-flt-cx-mat.cc:(.text+0x4359): undefined reference to `octave_signal_caught' ov-int8.o:ov-int8.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIaEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<signed char> > >::convert_to_str_internal(bool, bool, char) const]+0x207): undefined reference to `octave_signal_caught' ov-int8.o:ov-int8.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIaEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<signed char> > >::convert_to_str_internal(bool, bool, char) const]+0x210): undefined reference to `octave_handle_signal' ov-int16.o:ov-int16.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIsEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<short> > >::convert_to_str_internal(bool, bool, char) const]+0xfd): undefined reference to `octave_signal_caught' ov-int16.o:ov-int16.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIsEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<short> > >::convert_to_str_internal(bool, bool, char) const]+0x106): undefined reference to `octave_handle_signal' ov-int32.o:ov-int32.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIiEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<int> > >::convert_to_str_internal(bool, bool, char) const]+0xfd): undefined reference to `octave_signal_caught' ov-int32.o:ov-int32.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIiEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<int> > >::convert_to_str_internal(bool, bool, char) const]+0x106): undefined reference to `octave_handle_signal' ov-int64.o:ov-int64.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIxEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<long long> > >::convert_to_str_internal(bool, bool, char) const]+0x202): undefined reference to `octave_signal_caught' ov-int64.o:ov-int64.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIxEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<long long> > >::convert_to_str_internal(bool, bool, char) const]+0x20b): undefined reference to `octave_handle_signal' ov-uint8.o:ov-uint8.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIhEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<unsigned char> > >::convert_to_str_internal(bool, bool, char) const]+0xc2): undefined reference to `octave_signal_caught' ov-uint8.o:ov-uint8.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIhEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<unsigned char> > >::convert_to_str_internal(bool, bool, char) const]+0xcb): undefined reference to `octave_handle_signal' ov-uint16.o:ov-uint16.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intItEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<unsigned short> > >::convert_to_str_internal(bool, bool, char) const]+0xfd): undefined reference to `octave_signal_caught' ov-uint16.o:ov-uint16.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intItEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<unsigned short> > >::convert_to_str_internal(bool, bool, char) const]+0x106): undefined reference to `octave_handle_signal' v-uint32.o:ov-uint32.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIjEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<unsigned int> > >::convert_to_str_internal(bool, bool, char) const]+0xfd): undefined reference to `octave_signal_caught' ov-uint32.o:ov-uint32.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIjEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<unsigned int> > >::convert_to_str_internal(bool, bool, char) const]+0x106): undefined reference to `octave_handle_signal' ov-uint64.o:ov-uint64.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIyEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<unsigned long long> > >::convert_to_str_internal(bool, bool, char) const]+0x202): undefined reference to `octave_signal_caught' ov-uint64.o:ov-uint64.cc:(.text$_ZNK22octave_base_int_matrixI10intNDArrayI10octave_intIyEEE23convert_to_str_internalEbbc[octave_base_int_matrix<intNDArray<octave_int<unsigned long long> > >::convert_to_str_internal(bool, bool, char) const]+0x20b): undefined reference to `octave_handle_signal' ov-bool-sparse.o:ov-bool-sparse.cc:(.text+0x1feb): undefined reference to `octave_signal_caught' ov-bool-sparse.o:ov-bool-sparse.cc:(.text+0x1ff4): undefined reference to `octave_handle_signal' ov-cx-sparse.o:ov-cx-sparse.cc:(.text+0x2063): undefined reference to `octave_signal_caught' ov-cx-sparse.o:ov-cx-sparse.cc:(.text+0x206c): undefined reference to `octave_handle_signal' ov-re-sparse.o:ov-re-sparse.cc:(.text+0x710): undefined reference to `octave_signal_caught' ov-re-sparse.o:ov-re-sparse.cc:(.text+0x719): undefined reference to `octave_handle_signal' pt-eval.o:pt-eval.cc:(.text+0x5a7): undefined reference to `octave_signal_caught' pt-eval.o:pt-eval.cc:(.text+0x5b0): undefined reference to `octave_interrupt_immediately' pt-eval.o:pt-eval.cc:(.text+0x5b9): undefined reference to `octave_interrupt_state' pt-eval.o:pt-eval.cc:(.text+0x5f0): undefined reference to `octave_handle_signal' pt-mat.o:pt-mat.cc:(.text+0x200): undefined reference to `octave_signal_caught' pt-mat.o:pt-mat.cc:(.text+0x209): undefined reference to `octave_handle_signal' op-i8-i8.o:op-i8-i8.cc:(.text+0x1168b): undefined reference to `octave_signal_caught' op-i8-i8.o:op-i8-i8.cc:(.text+0x11694): undefined reference to `octave_handle_signal' op-i16-i16.o:op-i16-i16.cc:(.text+0x116ff): undefined reference to `octave_signal_caught' op-i16-i16.o:op-i16-i16.cc:(.text+0x11708): undefined reference to `octave_handle_signal' op-i32-i32.o:op-i32-i32.cc:(.text+0x12093): undefined reference to `octave_signal_caught' op-i32-i32.o:op-i32-i32.cc:(.text+0x1209c): undefined reference to `octave_handle_signal' op-i64-i64.o:op-i64-i64.cc:(.text+0x1189e): undefined reference to `octave_signal_caught' op-i64-i64.o:op-i64-i64.cc:(.text+0x118a7): undefined reference to `octave_handle_signal' op-ui8-ui8.o:op-ui8-ui8.cc:(.text+0x1280b): undefined reference to `octave_signal_caught' op-ui8-ui8.o:op-ui8-ui8.cc:(.text+0x12814): undefined reference to `octave_handle_signal' op-ui16-ui16.o:op-ui16-ui16.cc:(.text+0x13f7f): undefined reference to `octave_signal_caught' op-ui16-ui16.o:op-ui16-ui16.cc:(.text+0x13f88): undefined reference to `octave_handle_signal' op-ui32-ui32.o:op-ui32-ui32.cc:(.text+0x1405b): undefined reference to `octave_signal_caught' op-ui32-ui32.o:op-ui32-ui32.cc:(.text+0x14064): undefined reference to `octave_handle_signal' op-ui64-ui64.o:op-ui64-ui64.cc:(.text+0x1603e): undefined reference to `octave_signal_caught' op-ui64-ui64.o:op-ui64-ui64.cc:(.text+0x16047): undefined reference to `octave_handle_signal' Array-os.o:Array-os.cc:(.text+0xf): undefined reference to `current_liboctave_error_handler' display.o:display.cc:(.text+0x4a): undefined reference to `GetDeviceCaps@8' file-io.o:file-io.cc:(.text+0x8bfd): undefined reference to `mkstemps' ../libcruft/blas-xtra/xerbla.o:xerbla.f:(.text+0x50): undefined reference to `_gfortran_st_write' ../libcruft/blas-xtra/xerbla.o:xerbla.f:(.text+0x67): undefined reference to `_gfortran_transfer_character' ../libcruft/blas-xtra/xerbla.o:xerbla.f:(.text+0x7e): undefined reference to `_gfortran_transfer_integer' ../libcruft/blas-xtra/xerbla.o:xerbla.f:(.text+0x86): undefined reference to `_gfortran_st_write_done' ../libcruft/blas-xtra/xerbla.o:xerbla.f:(.text+0x9a): undefined reference to `xstopx_' chol.o:chol.cc:(.text$_ZN10SparseCHOLD1Ev[SparseCHOL::~SparseCHOL()]+0x3d): undefined reference to `cholmod_free_sparse' chol.o:chol.cc:(.text$_ZN17SparseComplexCHOLD1Ev[SparseComplexCHOL::~SparseComplexCHOL()]+0x3d): undefined reference to `cholmod_free_sparse' ccolamd.o:ccolamd.cc:(.text+0x690): undefined reference to `ccolamd_set_defaults' ccolamd.o:ccolamd.cc:(.text+0x13b2): undefined reference to `csymamd_report' ccolamd.o:ccolamd.cc:(.text+0x14cc): undefined reference to `csymamd' ccolamd.o:ccolamd.cc:(.text+0x14e2): undefined reference to `csymamd_report' ccolamd.o:ccolamd.cc:(.text+0x165a): undefined reference to `csymamd' ccolamd.o:ccolamd.cc:(.text+0x1670): undefined reference to `csymamd_report' ccolamd.o:ccolamd.cc:(.text+0x1c50): undefined reference to `ccolamd_set_defaults' ccolamd.o:ccolamd.cc:(.text+0x23a3): undefined reference to `ccolamd_recommended' ccolamd.o:ccolamd.cc:(.text+0x26ba): undefined reference to `ccolamd_report' ccolamd.o:ccolamd.cc:(.text+0x2b45): undefined reference to `ccolamd' ccolamd.o:ccolamd.cc:(.text+0x2b5b): undefined reference to `ccolamd_report' ccolamd.o:ccolamd.cc:(.text+0x2d97): undefined reference to `ccolamd' ccolamd.o:ccolamd.cc:(.text+0x2dad): undefined reference to `ccolamd_report' eigs.o:eigs.cc:(.text+0x7ec): undefined reference to `zgemv_' eigs.o:eigs.cc:(.text+0xc04): undefined reference to `cholmod_free_sparse' eigs.o:eigs.cc:(.text+0x1dd6): undefined reference to `dgemv_' eigs.o:eigs.cc:(.text$_ZN17SparseComplexCHOLD1Ev[SparseComplexCHOL::~SparseComplexCHOL()]+0x3d): undefined reference to `cholmod_free_sparse' eigs.o:eigs.cc:(.text$_ZN10SparseCHOLD1Ev[SparseCHOL::~SparseCHOL()]+0x3d): undefined reference to `cholmod_free_sparse' eigs.o:eigs.cc:(.text$_Z29EigsComplexNonSymmetricMatrixI19SparseComplexMatrixEiRKT_SsiiRiR13ComplexMatrixR19ComplexColumnVectorS3_R12ColumnVectorS8_RSodibii[int EigsComplexNonSymmetricMatrix<SparseComplexMatrix>(SparseComplexMatrix const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, int, int&, ComplexMatrix&, ComplexColumnVector&, SparseComplexMatrix const&, ColumnVector&, ComplexColumnVector&, std::basic_ostream<char, std::char_traits<char> >&, double, int, bool, int, int)]+0x1c28): undefined reference to `cholmod_free_sparse' qz.o:qz.cc:(.text+0x2195): undefined reference to `dlag2_' qz.o:qz.cc:(.text+0x23eb): undefined reference to `dhgeqz_' qz.o:qz.cc:(.text+0x2659): undefined reference to `dgghrd_' qz.o:qz.cc:(.text+0x2772): undefined reference to `dggbal_' qz.o:qz.cc:(.text+0x2cb7): undefined reference to `dtgevc_' qz.o:qz.cc:(.text+0x37d0): undefined reference to `dggbak_' qz.o:qz.cc:(.text+0x3868): undefined reference to `dggbak_' symbfact.o:symbfact.cc:(.text+0x403): undefined reference to `cholmod_start' symbfact.o:symbfact.cc:(.text+0x4d6): undefined reference to `cholmod_divcomplex' symbfact.o:symbfact.cc:(.text+0x4e0): undefined reference to `cholmod_hypot' symbfact.o:symbfact.cc:(.text+0xb22): undefined reference to `cholmod_transpose' symbfact.o:symbfact.cc:(.text+0xb5f): undefined reference to `cholmod_etree' symbfact.o:symbfact.cc:(.text+0xba1): undefined reference to `cholmod_postorder' symbfact.o:symbfact.cc:(.text+0xcda): undefined reference to `cholmod_rowcolcounts' symbfact.o:symbfact.cc:(.text+0xef3): undefined reference to `cholmod_allocate_sparse' symbfact.o:symbfact.cc:(.text+0xf59): undefined reference to `cholmod_row_subtree' symbfact.o:symbfact.cc:(.text+0xfdc): undefined reference to `cholmod_free_sparse' balance.o:balance.cc:(.text+0x880): undefined reference to `Array<double>::get_size(dim_vector const&)' balance.o:balance.cc:(.text+0x941): undefined reference to `Array<std::complex<double> >::get_size(dim_vector const&)' balance.o:balance.cc:(.text+0xa2b): undefined reference to `Array<float>::get_size(dim_vector const&)' balance.o:balance.cc:(.text+0xb04): undefined reference to `Array<std::complex<float> >::get_size(dim_vector const&)' balance.o:balance.cc:(.text+0xbf9): undefined reference to `Array<std::complex<float> >::operator=(Array<std::complex<float> > const&)' balance.o:balance.cc:(.text+0xd7c): undefined reference to `FloatComplexAEPBALANCE::FloatComplexAEPBALANCE(FloatComplexMatrix const&, bool, bool)' balance.o:balance.cc:(.text+0xd9e): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0xdc0): undefined reference to `Array<std::complex<float> >::Array(Array<std::complex<float> > const&, dim_vector const&)' balance.o:balance.cc:(.text+0xe14): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0xe5f): undefined reference to `Array<float>::make_unique()' balance.o:balance.cc:(.text+0xe9b): undefined reference to `Array<float>::make_unique()' balance.o:balance.cc:(.text+0xeda): undefined reference to `Array<float>::make_unique()' balance.o:balance.cc:(.text+0xf7d): undefined reference to `Array<float>::make_unique()' balance.o:balance.cc:(.text+0xff9): undefined reference to `Array<float>::make_unique()' balance.o:balance.cc:(.text+0x103f): more undefined references to `Array<float>::make_unique()' follow balance.o:balance.cc:(.text+0x1204): undefined reference to `Array<std::complex<float> >::~Array()' balance.o:balance.cc:(.text+0x121c): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text+0x1234): undefined reference to `Array<std::complex<double> >::~Array()' balance.o:balance.cc:(.text+0x124c): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text+0x12b1): undefined reference to `Array<std::complex<double> >::operator=(Array<std::complex<double> > const&)' balance.o:balance.cc:(.text+0x13cf): undefined reference to `Array<double>::operator=(Array<double> const&)' balance.o:balance.cc:(.text+0x147f): undefined reference to `Array<float>::operator=(Array<float> const&)' balance.o:balance.cc:(.text+0x1506): undefined reference to `ComplexAEPBALANCE::ComplexAEPBALANCE(ComplexMatrix const&, bool, bool)' balance.o:balance.cc:(.text+0x1528): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x154a): undefined reference to `Array<std::complex<double> >::Array(Array<std::complex<double> > const&, dim_vector const&)' balance.o:balance.cc:(.text+0x159e): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x15ea): undefined reference to `Array<double>::make_unique()' balance.o:balance.cc:(.text+0x162a): undefined reference to `Array<double>::make_unique()' balance.o:balance.cc:(.text+0x166a): undefined reference to `Array<double>::make_unique()' balance.o:balance.cc:(.text+0x170e): undefined reference to `Array<double>::make_unique()' balance.o:balance.cc:(.text+0x178a): undefined reference to `Array<double>::make_unique()' balance.o:balance.cc:(.text+0x17d0): more undefined references to `Array<double>::make_unique()' follow balance.o:balance.cc:(.text+0x1b34): undefined reference to `AEPBALANCE::AEPBALANCE(Matrix const&, bool, bool)' balance.o:balance.cc:(.text+0x1b56): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x1bbb): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x1c0a): undefined reference to `Array<double>::make_unique()' balance.o:balance.cc:(.text+0x1c4a): undefined reference to `Array<double>::make_unique()' balance.o:balance.cc:(.text+0x1c8a): undefined reference to `Array<double>::make_unique()' balance.o:balance.cc:(.text+0x1d2e): undefined reference to `Array<double>::make_unique()' balance.o:balance.cc:(.text+0x1daa): undefined reference to `Array<double>::make_unique()' balance.o:balance.cc:(.text+0x1df0): more undefined references to `Array<double>::make_unique()' follow balance.o:balance.cc:(.text+0x1fbf): undefined reference to `FloatAEPBALANCE::FloatAEPBALANCE(FloatMatrix const&, bool, bool)' balance.o:balance.cc:(.text+0x1fe1): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x2043): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x208e): undefined reference to `Array<float>::make_unique()' balance.o:balance.cc:(.text+0x20ca): undefined reference to `Array<float>::make_unique()' balance.o:balance.cc:(.text+0x210a): undefined reference to `Array<float>::make_unique()' balance.o:balance.cc:(.text+0x21ad): undefined reference to `Array<float>::make_unique()' balance.o:balance.cc:(.text+0x2229): undefined reference to `Array<float>::make_unique()' balance.o:balance.cc:(.text+0x226f): more undefined references to `Array<float>::make_unique()' follow balance.o:balance.cc:(.text+0x24c3): undefined reference to `Array<std::complex<float> >::operator=(Array<std::complex<float> > const&)' balance.o:balance.cc:(.text+0x2557): undefined reference to `FloatComplexGEPBALANCE::init(FloatComplexMatrix const&, FloatComplexMatrix const&, std::string const&)' balance.o:balance.cc:(.text+0x2671): undefined reference to `Array<std::complex<double> >::operator=(Array<std::complex<double> > const&)' balance.o:balance.cc:(.text+0x26f8): undefined reference to `ComplexGEPBALANCE::init(ComplexMatrix const&, ComplexMatrix const&, std::string const&)' balance.o:balance.cc:(.text+0x273f): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x27a1): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x27af): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x27c7): undefined reference to `FloatAEPBALANCE::balancing_matrix() const' balance.o:balance.cc:(.text+0x2814): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x2827): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x288c): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x289a): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x28b2): undefined reference to `AEPBALANCE::balancing_matrix() const' balance.o:balance.cc:(.text+0x2902): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x2915): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x2937): undefined reference to `Array<std::complex<float> >::Array(Array<std::complex<float> > const&, dim_vector const&)' balance.o:balance.cc:(.text+0x298b): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x2999): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x29b1): undefined reference to `FloatComplexAEPBALANCE::balancing_matrix() const' balance.o:balance.cc:(.text+0x29fe): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x2a11): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x2a33): undefined reference to `Array<std::complex<double> >::Array(Array<std::complex<double> > const&, dim_vector const&)' balance.o:balance.cc:(.text+0x2a87): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x2a95): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x2aad): undefined reference to `ComplexAEPBALANCE::balancing_matrix() const' balance.o:balance.cc:(.text+0x2afa): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x2b46): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x2bb6): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x2bd8): undefined reference to `Array<std::complex<float> >::Array(Array<std::complex<float> > const&, dim_vector const&)' balance.o:balance.cc:(.text+0x2c37): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x2c59): undefined reference to `Array<std::complex<double> >::Array(Array<std::complex<double> > const&, dim_vector const&)' balance.o:balance.cc:(.text+0x2cad): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x2cc0): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x2d64): undefined reference to `Array<double>::operator=(Array<double> const&)' balance.o:balance.cc:(.text+0x2dde): undefined reference to `GEPBALANCE::init(Matrix const&, Matrix const&, std::string const&)' balance.o:balance.cc:(.text+0x2e7b): undefined reference to `FloatGEPBALANCE::init(FloatMatrix const&, FloatMatrix const&, std::string const&)' balance.o:balance.cc:(.text+0x2ef9): undefined reference to `Array<float>::operator=(Array<float> const&)' balance.o:balance.cc:(.text+0x2f22): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x2f87): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x2f95): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x2ffa): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3021): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x303d): undefined reference to `Array<std::complex<double> >::Array(Array<std::complex<double> > const&, dim_vector const&)' balance.o:balance.cc:(.text+0x3094): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x30a2): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x30c4): undefined reference to `Array<std::complex<double> >::Array(Array<std::complex<double> > const&, dim_vector const&)' balance.o:balance.cc:(.text+0x311b): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3129): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x318e): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x319c): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x320c): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x3271): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x327f): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x32e4): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3307): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x3366): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3374): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x33d9): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x33e7): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x344c): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x345a): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x34ca): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x352f): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x353d): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x35a2): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x35d0): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x35ec): undefined reference to `Array<std::complex<float> >::Array(Array<std::complex<float> > const&, dim_vector const&)' balance.o:balance.cc:(.text+0x3643): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3651): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x3673): undefined reference to `Array<std::complex<float> >::Array(Array<std::complex<float> > const&, dim_vector const&)' balance.o:balance.cc:(.text+0x36ca): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x36d8): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x373d): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x374b): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x37b0): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x37c3): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x3828): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3836): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x38b6): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x3915): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3923): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x3988): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3996): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x39fb): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3a09): undefined reference to `MatrixType::MatrixType()' balance.o:balance.cc:(.text+0x3a89): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3b5a): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3ba4): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3be8): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3c7b): undefined reference to `MatrixType::~MatrixType()' balance.o:balance.cc:(.text+0x3cbc): more undefined references to `MatrixType::~MatrixType()' follow balance.o:balance.cc:(.text$_ZN13string_vectorD1Ev[string_vector::~string_vector()]+0xe): undefined reference to `Array<std::string>::~Array()' balance.o:balance.cc:(.text$_ZN13string_vectorD0Ev[string_vector::~string_vector()]+0x14): undefined reference to `Array<std::string>::~Array()' balance.o:balance.cc:(.text$_ZN18FloatComplexMatrixD0Ev[FloatComplexMatrix::~FloatComplexMatrix()]+0x14): undefined reference to `Array<std::complex<float> >::~Array()' balance.o:balance.cc:(.text$_ZN18FloatComplexMatrixD1Ev[FloatComplexMatrix::~FloatComplexMatrix()]+0xe): undefined reference to `Array<std::complex<float> >::~Array()' balance.o:balance.cc:(.text$_ZN7MArray2ISt7complexIfEED0Ev[MArray2<std::complex<float> >::~MArray2()]+0x14): undefined reference to `Array<std::complex<float> >::~Array()' balance.o:balance.cc:(.text$_ZN7MArray2ISt7complexIfEED1Ev[MArray2<std::complex<float> >::~MArray2()]+0xe): undefined reference to `Array<std::complex<float> >::~Array()' balance.o:balance.cc:(.text$_ZN6Array2ISt7complexIfEED0Ev[Array2<std::complex<float> >::~Array2()]+0x14): undefined reference to `Array<std::complex<float> >::~Array()' balance.o:balance.cc:(.text$_ZN6Array2ISt7complexIfEED1Ev[Array2<std::complex<float> >::~Array2()]+0xe): more undefined references to `Array<std::complex<float> >::~Array()' follow balance.o:balance.cc:(.text$_ZN17FloatColumnVectorD0Ev[FloatColumnVector::~FloatColumnVector()]+0x14): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN17FloatColumnVectorD1Ev[FloatColumnVector::~FloatColumnVector()]+0xe): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN6MArrayIfED0Ev[MArray<float>::~MArray()]+0x14): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN6MArrayIfED1Ev[MArray<float>::~MArray()]+0xe): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN11FloatMatrixD0Ev[FloatMatrix::~FloatMatrix()]+0x14): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN11FloatMatrixD1Ev[FloatMatrix::~FloatMatrix()]+0xe): more undefined references to `Array<float>::~Array()' follow balance.o:balance.cc:(.text$_ZN11FloatMatrixC1ERKS_[FloatMatrix::FloatMatrix(FloatMatrix const&)]+0x1c): undefined reference to `Array<float>::Array(Array<float> const&, dim_vector const&)' balance.o:balance.cc:(.text$_ZN13ComplexMatrixD0Ev[ComplexMatrix::~ComplexMatrix()]+0x14): undefined reference to `Array<std::complex<double> >::~Array()' balance.o:balance.cc:(.text$_ZN13ComplexMatrixD1Ev[ComplexMatrix::~ComplexMatrix()]+0xe): undefined reference to `Array<std::complex<double> >::~Array()' balance.o:balance.cc:(.text$_ZN7MArray2ISt7complexIdEED0Ev[MArray2<std::complex<double> >::~MArray2()]+0x14): undefined reference to `Array<std::complex<double> >::~Array()' balance.o:balance.cc:(.text$_ZN7MArray2ISt7complexIdEED1Ev[MArray2<std::complex<double> >::~MArray2()]+0xe): undefined reference to `Array<std::complex<double> >::~Array()' balance.o:balance.cc:(.text$_ZN6Array2ISt7complexIdEED0Ev[Array2<std::complex<double> >::~Array2()]+0x14): undefined reference to `Array<std::complex<double> >::~Array()' balance.o:balance.cc:(.text$_ZN6Array2ISt7complexIdEED1Ev[Array2<std::complex<double> >::~Array2()]+0xe): more undefined references to `Array<std::complex<double> >::~Array()' follow balance.o:balance.cc:(.text$_ZN12ColumnVectorD0Ev[ColumnVector::~ColumnVector()]+0x14): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN12ColumnVectorD1Ev[ColumnVector::~ColumnVector()]+0xe): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN6MArrayIdED0Ev[MArray<double>::~MArray()]+0x14): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN6MArrayIdED1Ev[MArray<double>::~MArray()]+0xe): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN6MatrixD0Ev[Matrix::~Matrix()]+0x14): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN6MatrixD1Ev[Matrix::~Matrix()]+0xe): more undefined references to `Array<double>::~Array()' follow balance.o:balance.cc:(.text$_ZN6MatrixC1ERKS_[Matrix::Matrix(Matrix const&)]+0x1c): undefined reference to `Array<double>::Array(Array<double> const&, dim_vector const&)' balance.o:balance.cc:(.text$_ZN22FloatComplexAEPBALANCED1Ev[FloatComplexAEPBALANCE::~FloatComplexAEPBALANCE()]+0x1d): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN22FloatComplexAEPBALANCED1Ev[FloatComplexAEPBALANCE::~FloatComplexAEPBALANCE()]+0x34): undefined reference to `Array<std::complex<float> >::~Array()' balance.o:balance.cc:(.text$_ZN17ComplexAEPBALANCED1Ev[ComplexAEPBALANCE::~ComplexAEPBALANCE()]+0x1d): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN17ComplexAEPBALANCED1Ev[ComplexAEPBALANCE::~ComplexAEPBALANCE()]+0x34): undefined reference to `Array<std::complex<double> >::~Array()' balance.o:balance.cc:(.text$_ZN10AEPBALANCED1Ev[AEPBALANCE::~AEPBALANCE()]+0x1d): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN10AEPBALANCED1Ev[AEPBALANCE::~AEPBALANCE()]+0x34): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN17ComplexGEPBALANCED1Ev[ComplexGEPBALANCE::~ComplexGEPBALANCE()]+0x1d): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN17ComplexGEPBALANCED1Ev[ComplexGEPBALANCE::~ComplexGEPBALANCE()]+0x2f): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN17ComplexGEPBALANCED1Ev[ComplexGEPBALANCE::~ComplexGEPBALANCE()]+0x41): undefined reference to `Array<std::complex<double> >::~Array()' balance.o:balance.cc:(.text$_ZN17ComplexGEPBALANCED1Ev[ComplexGEPBALANCE::~ComplexGEPBALANCE()]+0x58): undefined reference to `Array<std::complex<double> >::~Array()' balance.o:balance.cc:(.text$_ZN10GEPBALANCED1Ev[GEPBALANCE::~GEPBALANCE()]+0x1d): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN10GEPBALANCED1Ev[GEPBALANCE::~GEPBALANCE()]+0x2f): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN10GEPBALANCED1Ev[GEPBALANCE::~GEPBALANCE()]+0x41): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN10GEPBALANCED1Ev[GEPBALANCE::~GEPBALANCE()]+0x58): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.text$_ZN15FloatAEPBALANCED1Ev[FloatAEPBALANCE::~FloatAEPBALANCE()]+0x1d): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN15FloatAEPBALANCED1Ev[FloatAEPBALANCE::~FloatAEPBALANCE()]+0x34): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN22FloatComplexGEPBALANCED1Ev[FloatComplexGEPBALANCE::~FloatComplexGEPBALANCE()]+0x1d): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN22FloatComplexGEPBALANCED1Ev[FloatComplexGEPBALANCE::~FloatComplexGEPBALANCE()]+0x2f): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN22FloatComplexGEPBALANCED1Ev[FloatComplexGEPBALANCE::~FloatComplexGEPBALANCE()]+0x41): undefined reference to `Array<std::complex<float> >::~Array()' balance.o:balance.cc:(.text$_ZN22FloatComplexGEPBALANCED1Ev[FloatComplexGEPBALANCE::~FloatComplexGEPBALANCE()]+0x58): undefined reference to `Array<std::complex<float> >::~Array()' balance.o:balance.cc:(.text$_ZN15FloatGEPBALANCED1Ev[FloatGEPBALANCE::~FloatGEPBALANCE()]+0x1d): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN15FloatGEPBALANCED1Ev[FloatGEPBALANCE::~FloatGEPBALANCE()]+0x2f): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN15FloatGEPBALANCED1Ev[FloatGEPBALANCE::~FloatGEPBALANCE()]+0x41): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN15FloatGEPBALANCED1Ev[FloatGEPBALANCE::~FloatGEPBALANCE()]+0x58): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.text$_ZN18FloatComplexMatrixC1Ev[FloatComplexMatrix::FloatComplexMatrix()]+0x46): undefined reference to `Array<std::complex<float> >::get_size(dim_vector const&)' balance.o:balance.cc:(.text$_ZN6MatrixC1Ev[Matrix::Matrix()]+0x46): undefined reference to `Array<double>::get_size(dim_vector const&)' balance.o:balance.cc:(.text$_ZN13ComplexMatrixC1Ev[ComplexMatrix::ComplexMatrix()]+0x46): undefined reference to `Array<std::complex<double> >::get_size(dim_vector const&)' balance.o:balance.cc:(.text$_ZN11FloatMatrixC1Ev[FloatMatrix::FloatMatrix()]+0x46): undefined reference to `Array<float>::get_size(dim_vector const&)' balance.o:balance.cc:(.rdata$_ZTV5ArrayISsE[vtable for Array<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]+0x8): undefined reference to `Array<std::string>::~Array()' balance.o:balance.cc:(.rdata$_ZTV5ArrayISsE[vtable for Array<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]+0xc): undefined reference to `Array<std::string>::~Array()' balance.o:balance.cc:(.rdata$_ZTV5ArrayIfE[vtable for Array<float>]+0x8): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.rdata$_ZTV5ArrayIfE[vtable for Array<float>]+0xc): undefined reference to `Array<float>::~Array()' balance.o:balance.cc:(.rdata$_ZTV5ArrayIdE[vtable for Array<double>]+0x8): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.rdata$_ZTV5ArrayIdE[vtable for Array<double>]+0xc): undefined reference to `Array<double>::~Array()' balance.o:balance.cc:(.rdata$_ZTV5ArrayISt7complexIdEE[vtable for Array<std::complex<double> >]+0x8): undefined reference to `Array<std::complex<double> >::~Array()' balance.o:balance.cc:(.rdata$_ZTV5ArrayISt7complexIdEE[vtable for Array<std::complex<double> >]+0xc): undefined reference to `Array<std::complex<double> >::~Array()' balance.o:balance.cc:(.rdata$_ZTV5ArrayISt7complexIfEE[vtable for Array<std::complex<float> >]+0x8): undefined reference to `Array<std::complex<float> >::~Array()' balance.o:balance.cc:(.rdata$_ZTV5ArrayISt7complexIfEE[vtable for Array<std::complex<float> >]+0xc): undefined reference to `Array<std::complex<float> >::~Array()' betainc.o:betainc.cc:(.text+0x8b2): undefined reference to `betainc(FloatNDArray const&, float, float)' betainc.o:betainc.cc:(.text+0xa61): undefined reference to `betainc(double, double, double)' betainc.o:betainc.cc:(.text+0xb3f): undefined reference to `betainc(float, float, float)' betainc.o:betainc.cc:(.text+0xec4): undefined reference to `betainc(NDArray const&, double, double)' betainc.o:betainc.cc:(.text+0xf82): undefined reference to `betainc(NDArray const&, NDArray const&, NDArray const&)' betainc.o:betainc.cc:(.text+0x1054): undefined reference to `betainc(float, FloatNDArray const&, FloatNDArray const&)' betainc.o:betainc.cc:(.text+0x1121): undefined reference to `betainc(double, NDArray const&, NDArray const&)' betainc.o:betainc.cc:(.text+0x11e7): undefined reference to `betainc(FloatNDArray const&, FloatNDArray const&, FloatNDArray const&)' betainc.o:betainc.cc:(.text+0x12bc): undefined reference to `betainc(NDArray const&, double, NDArray const&)' betainc.o:betainc.cc:(.text+0x1391): undefined reference to `betainc(double, double, NDArray const&)' betainc.o:betainc.cc:(.text+0x145a): undefined reference to `betainc(float, float, FloatNDArray const&)' betainc.o:betainc.cc:(.text+0x1524): undefined reference to `betainc(FloatNDArray const&, float, FloatNDArray const&)' betainc.o:betainc.cc:(.text+0x15ac): undefined reference to `betainc(NDArray const&, NDArray const&, double)' betainc.o:betainc.cc:(.text+0x1626): undefined reference to `betainc(FloatNDArray const&, FloatNDArray const&, float)' betainc.o:betainc.cc:(.text+0x16a0): undefined reference to `betainc(float, FloatNDArray const&, float)' betainc.o:betainc.cc:(.text+0x170e): undefined reference to `betainc(double, NDArray const&, double)' betainc.o:betainc.cc:(.text$_ZN12FloatNDArrayD1Ev[FloatNDArray::~FloatNDArray()]+0xe): undefined reference to `Array<float>::~Array()' betainc.o:betainc.cc:(.text$_ZN12FloatNDArrayD0Ev[FloatNDArray::~FloatNDArray()]+0x14): undefined reference to `Array<float>::~Array()' betainc.o:betainc.cc:(.text$_ZN7MArrayNIfED0Ev[MArrayN<float>::~MArrayN()]+0x14): undefined reference to `Array<float>::~Array()' betainc.o:betainc.cc:(.text$_ZN7MArrayNIfED1Ev[MArrayN<float>::~MArrayN()]+0xe): undefined reference to `Array<float>::~Array()' betainc.o:betainc.cc:(.text$_ZN6ArrayNIfED0Ev[ArrayN<float>::~ArrayN()]+0x14): undefined reference to `Array<float>::~Array()' betainc.o:betainc.cc:(.text$_ZN6ArrayNIfED1Ev[ArrayN<float>::~ArrayN()]+0xe): more undefined references to `Array<float>::~Array()' follow betainc.o:betainc.ccamd.o:amd.cc:(.text+0x73d:(.text$_ZN7NDArrayD1Ev): undefined reference to[NDArray::~NDArray()]+0xe `Sparse<std::complex<double> >::operator=(Sparse): undefined reference to `Array<double>::~Array()' amd.o:amd.cc:(.text+0xbe4): undefined reference to `Sparse<double>::~Sparse()' amd.o:amd.cc): undefined reference to `Array<std:(.text+0xc9e): undefined reference::string>::~Array to `real(ComplexMatrix const&)' amd.o:amd.cc:(.text+0xcd1): undefined reference to `Sparse<double>::operator=(Sparse<double> const&)' amd.o:amd.cc:(.text+0xe70): undefined reference to `Sparse<double>::operator=(Sparse<double> const&)' amd.o:amd.cc:(.text+0xf48): undefined reference to `Sparse<double>::operator=(Sparse<double> const&)' amd.o:amd.cc:(.text+0x10d6): undefined reference to `octave_chunk_buffer::~octave_chunk_buffer()' amd.o:amd.cc:(.text+0x119a): undefined reference to `MatrixType::~MatrixType()' amd.o:amd.cc:(.text+0x11c1): undefined reference to `octave_chunk_buffer::~octave_chunk_buffer()' amd.o:amd.cc:(.text+0x1271): undefined reference to `MatrixType::~MatrixType()' amd.o:amd.cc:(.text$_ZN13string_vectorD1Ev[string_vector::~string_vector()]+0xe): undefined reference to `Array<std::string>::~Array()' amd.o:amd.cc:(.text$_ZN13string_vectorD0Ev[string_vector::~string_vector()]+0x14): undefined reference to `Array<std::string>::~Array()' amd.o:amd.cc:(.text$_ZN12SparseMatrixD0Ev[SparseMatrix::~SparseMatrix()]+0x14): undefined reference to `Sparse<double>::~Sparse()' amd.o:amd.cc:(.text$_ZN12SparseMatrixD1Ev[SparseMatrix::~SparseMatrix()]+0xe): undefined reference to `Sparse<double>::~Sparse()' amd.o:amd.cc:(.text$_ZN7MSparseIdED0Ev[MSparse<double>::~MSparse()]+0x14): undefined reference to `Sparse<double>::~Sparse()' amd.o:amd.cc:(.text$_ZN7MSparseIdED1Ev[MSparse<double>::~MSparse()]+0xe): undefined reference to `Sparse<double>::~Sparse()' amd.o:amd.cc:(.text$_ZN19SparseComplexMatrixD0Ev[SparseComplexMatrix::~SparseComplexMatrix()]+0x14): undefined reference to `Sparse<std()' collect2: ld returned 1 exit status ::complex<double> >::~Sparse()' amd.o:amd.cc:(.text$_ZN19SparseComplexMatrixD1Ev[SparseComplexMatrix::~SparseComplexMatrix()]+0xe): undefined reference to `Sparse<std::complex<double> >::~Sparse()' amd.o:amd.cc:(.text$_ZN7MSparseISt7complexIdEED0Ev[MSparse<std::complex<double> >::~MSparse()]+0x14): undefined reference to `Sparse<std::complex<double> >::~Sparse()' amd.o:amd.cc:(.text$_ZN7MSparseISt7complexIdEED1Ev[MSparse<std::complex<double> >::~MSparse()]+0xe): undefined reference to `Sparse<std::complex<double> >::~Sparse()' amd.o:amd.cc:(.text$_ZN13ComplexMatrixD1Ev[ComplexMatrix::~ComplexMatrix()]+0xe): undefined reference to `Array<std::complex<double> >::~Array()' amd.o:amd.cc:(.text$_ZN13ComplexMatrixD0Ev[ComplexMatrix::~ComplexMatrix()]+0x14): undefined reference to `Array<std::complex<double> >::~Array()' amd.o:amd.cc:(.text$_ZN7MArray2ISt7complexIdEED0Ev[MArray2<std::complex<double> >::~MArray2()]+0x14): undefined reference to `Array<std::complex<double> >::~Array()' amd.o:amd.cc:(.text$_ZN7MArray2ISt7complexIdEED1Ev[MArray2<std::complex<double> >::~MArray2()]+0xe): undefined reference to `Array<std::complex<double> >::~Array()' amd.o:amd.cc:(.text$_ZN6Array2ISt7complexIdEED0Ev[Array2<std::complex<double> >::~Array2()]+0x14): undefined reference to `Array<std::complex<double> >::~Array()' amd.o:amd.cc:(.text$_ZN6Array2ISt7complexIdEED1Ev[Array2<std::complex<double> >::~Array2()]+0xe): more undefined references to `Array<std::complex<double> >::~Array()' follow amd.o:amd.cc:(.text$_ZN12SparseMatrixC1ERK6Matrix[SparseMatrix::SparseMatrix(Matrix const&)]+0x1d): undefined reference to `Sparse<double>::Sparse(Array2<double> const&)' amd.o:amd.cc:(.text$_ZN12SparseMatrixC1ERK6Matrix[SparseMatrix::SparseMatrix(Matrix const&)]+0x4d): undefined reference to `Sparse<double>::~Sparse()' amd.o:amd.cc:(.text$_ZN6MatrixD0Ev[Matrix::~Matrix()]+0x14): undefined reference to `Array<double>::~Array()' amd.o:amd.cc:(.text$_ZN6MatrixD1Ev[Matrix::~Matrix()]+0xe): undefined reference to `Array<double>::~Array()' amd.o:amd.cc:(.text$_ZN7MArray2IdED0Ev[MArray2<double>::~MArray2()]+0x14): undefined reference to `Array<double>::~Array()' amd.o:amd.cc:(.text$_ZN7MArray2IdED1Ev[MArray2<double>::~MArray2()]+0xe): undefined reference to `Array<double>::~Array()' amd.o:amd.cc:(.text$_ZN6Array2IdED0Ev[Array2<double>::~Array2()]+0x14): undefined reference to `Array<double>::~Array()' amd.o:amd.cc:(.text$_ZN6Array2IdED1Ev[Array2<double>::~Array2()]+0xe): more undefined references to `Array<double>::~Array()' follow amd.o:amd.cc:(.text$_ZN6MatrixC1Eii[Matrix::Matrix(int, int)]+0x44): undefined reference to `Array<double>::get_size(dim_vector const&)' amd.o:amd.cc:(.rdata$_ZTV5ArrayISsE[vtable for Array<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]+0x8): undefined reference to `Array<stdmake[2]: *** [betainc.oct] Error 1 ::string>::~Array()' amd.o:amd.cc:(.rdata$_ZTV5ArrayISsE[vtable for Array<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]+0xc): undefined reference to `Array<std::string>::~Array()' amd.o:amd.cc:(.rdata$_ZTV6SparseIdE[vtable for Sparse<double>]+0x8): undefined reference to `Sparse<double>::~Sparse()' amd.o:amd.cc:(.rdata$_ZTV6SparseIdE[vtable for Sparse<double>]+0xc): undefined reference to `Sparse<double>::~Sparse()' amd.o:amd.cc:(.rdata$_ZTV6SparseISt7complexIdEE[vtable for Sparse<std::complex<double> >]+0x8): undefined reference to `Sparse<std::complex<double> >::~Sparse()' amd.o:amd.cc:(.rdata$_ZTV6SparseISt7complexIdEE[vtable for Sparse<std::complex<double> >]+0xc): undefined reference to `Sparse<std::complex<double> >::~Sparse()' amd.o:amd.cc:(.rdata$_ZTV5ArrayIdE[vtable for Array<double>]+0x8): undefined reference to `Array<double>::~Array()' amd.o:amd.cc:(.rdata$_ZTV5ArrayIdE[vtable for Array<double>]+0xc): undefined reference to `Array<double>::~Array()' besselj.o:besselj.cc:(.text+0x170a): undefined reference to `besseli(double, std::complex<double> const&, bool, int&)' besselj.o:besselj.cc:(.text+0x17e7): undefined reference to `besselj(double, std::complex<double> const&, bool, int&)' besselj.o:besselj.cc:(.text+0x1844): undefinedmake[2]: *** [amd.oct] Error 1 reference to `bessely(double, std::complex<double> const&, bool, int&)' besselj.o:besselj.cc:(.text+0x189d): undefined reference to `besselh2(float, std::complex<float> const&, bool, int&)' besselj.o:besselj.cc:(.text+0x1977): undefined reference to `besselh2(double, std::complex<double> const&, bool, int&)' besselj.o:besselj.cc:(.text+0x19d4): undefined reference to `besselh1(double, std::complex<double> const&, bool, int&)' besselj.o:besselj.cc:(.text+0x1a2d): undefined reference to `bessely(float, std::complex<float> const&, bool, int&)' besselj.o:besselj.cc:(.text+0x1a94): undefined reference to `besselj(float, std::complex<float> const&, bool, int&)' besselj.o:besselj.cc:(.text+0x1afb): undefined reference to `besselk(float, std::complex<float> const&, bool, int&)' besselj.o:besselj.cc:(.text+0x1b62): undefined reference to `besselh1(float, std::complex<float> const&, bool, int&)' besselj.o:besselj.cc:(.text+0x1bc9): undefined reference to `besseli(float, std::complex<float> const&, bool, int&)' besselj.o:besselj.cc:(.text+0x1c34): undefined reference to `besselk(double, std::complex<double> const&, bool, int&)' besselj.o:besselj.cc:(.text+0x1c97): undefined reference to `besselh1(FloatNDArray const&, std::complex<float> const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x1daa): undefined reference to `besselj(FloatNDArray const&, std::complex<float> const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x1e15): undefined reference to `besseli(FloatNDArray const&, std::complex<float> const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x1e80): undefined reference to `bessely(FloatNDArray const&, std::complex<float> const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x1eeb): undefined reference to `besselk(FloatNDArray const&, std::complex<float> const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x1f56): undefined reference to `besselh2(FloatNDArray const&, std::complex<float> const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x1f98): undefined reference to `MatrixType::MatrixType()' besselj.o:besselj.cc:(.text+0x1fcf): undefined reference to `bessely(FloatRowVector const&, FloatComplexColumnVector const&, bool, Array2<int>&)' besselj.o:besselj.cc:(.text+0x201b): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x2049): undefined reference to `NDArray::NDArray(Array<int> const&, bool, bool)' besselj.o:besselj.cc:(.text+0x20f7): undefined reference to `MatrixType::MatrixType()' besselj.o:besselj.cc:(.text+0x212e): undefined reference to `besselj(FloatRowVector const&, FloatComplexColumnVector const&, bool, Array2<int>&)' besselj.o:besselj.cc:(.text+0x217a): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x218d): undefined reference to `MatrixType::MatrixType()' besselj.o:besselj.cc:(.text+0x21c4): undefined reference to `besselh2(FloatRowVector const&, FloatComplexColumnVector const&, bool, Array2<int>&)' besselj.o:besselj.cc:(.text+0x2210): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x2223): undefined reference to `MatrixType::MatrixType()' besselj.o:besselj.cc:(.text+0x225a): undefined reference to `besselk(FloatRowVector const&, FloatComplexColumnVector const&, bool, Array2<int>&)' besselj.o:besselj.cc:(.text+0x22a6): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x22b9): undefined reference to `MatrixType::MatrixType()' besselj.o:besselj.cc:(.text+0x22f0): undefined reference to `besseli(FloatRowVector const&, FloatComplexColumnVector const&, bool, Array2<int>&)' besselj.o:besselj.cc:(.text+0x233c): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x234f): undefined reference to `MatrixType::MatrixType()' besselj.o:besselj.cc:(.text+0x2386): undefined reference to `besselh1(FloatRowVector const&, FloatComplexColumnVector const&, bool, Array2<int>&)' besselj.o:besselj.cc:(.text+0x25b3): undefined reference to `besselh2(NDArray const&, std::complex<double> const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x26ec): undefined reference to `bessely(NDArray const&, std::complex<double> const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x2751): undefined reference to `besselk(NDArray const&, std::complex<double> const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x27b6): undefined reference to `besseli(NDArray const&, std::complex<double> const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x281b): undefined reference to `besselj(NDArray const&, std::complex<double> const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x2880): undefined reference to `besselh1(NDArray const&, std::complex<double> const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x299f): undefined reference to `besselh2(double, ComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x2ac0): undefined reference to `besselh1(double, ComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x2b2b): undefined reference to `besseli(double, ComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x2b96): undefined reference to `besselk(double, ComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x2c01): undefined reference to `besselj(double, ComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x2c6c): undefined reference to `bessely(double, ComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x2d4b): undefined reference to `besselh2(float, FloatComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x2e66): undefined reference to `bessely(float, FloatComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x2ece): undefined reference to `besselk(float, FloatComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x2f36): undefined reference to `besseli(float, FloatComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x2f9e): undefined reference to `besselj(float, FloatComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x3006): undefined reference to `besselh1(float, FloatComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x30e8): undefined reference to `besselh2(FloatNDArray const&, FloatComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x3209): undefined reference to `besselh1(FloatNDArray const&, FloatComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x3274): undefined reference to `besselj(FloatNDArray const&, FloatComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x32df): undefined reference to `besseli(FloatNDArray const&, FloatComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x334a): undefined reference to `bessely(FloatNDArray const&, FloatComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x33b5): undefined reference to `besselk(FloatNDArray const&, FloatComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x3497): undefined reference to `besselh2(NDArray const&, ComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x35b8): undefined reference to `besselh1(NDArray const&, ComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x3623): undefined reference to `besselk(NDArray const&, ComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x368e): undefined reference to `besseli(NDArray const&, ComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x36f9): undefined reference to `bessely(NDArray const&, ComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x3764): undefined reference to `besselj(NDArray const&, ComplexNDArray const&, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x3935): undefined reference to `MatrixType::MatrixType()' besselj.o:besselj.cc:(.text+0x396c): undefined reference to `besselh2(RowVector const&, ComplexColumnVector const&, bool, Array2<int>&)' besselj.o:besselj.cc:(.text+0x39bb): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x39e9): undefined reference to `NDArray::NDArray(Array<int> const&, bool, bool)' besselj.o:besselj.cc:(.text+0x3a9a): undefined reference to `MatrixType::MatrixType()' besselj.o:besselj.cc:(.text+0x3ad1): undefined reference to `bessely(RowVector const&, ComplexColumnVector const&, bool, Array2<int>&)' besselj.o:besselj.cc:(.text+0x3b20): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x3b33): undefined reference to `MatrixType::MatrixType()' besselj.o:besselj.cc:(.text+0x3b6a): undefined reference to `besselk(RowVector const&, ComplexColumnVector const&, bool, Array2<int>&)' besselj.o:besselj.cc:(.text+0x3bb9): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x3bcc): undefined reference to `MatrixType::MatrixType()' besselj.o:besselj.cc:(.text+0x3c03): undefined reference to `besselh1(RowVector const&, ComplexColumnVector const&, bool, Array2<int>&)' besselj.o:besselj.cc:(.text+0x3c5d): undefined reference to `MatrixType::MatrixType()' besselj.o:besselj.cc:(.text+0x3c94): undefined reference to `besselj(RowVector const&, ComplexColumnVector const&, bool, Array2<int>&)' besselj.o:besselj.cc:(.text+0x3ce3): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x3cf6): undefined reference to `MatrixType::MatrixType()' besselj.o:besselj.cc:(.text+0x3d2d): undefined reference to `besseli(RowVector const&, ComplexColumnVector const&, bool, Array2<int>&)' besselj.o:besselj.cc:(.text+0x3d7c): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x3e33): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x3ee5): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x3f12): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x3f5d): undefined reference to `MatrixType::~MatrixType()' besselj.o:besselj.cc:(.text+0x4036): more undefined references to `MatrixType::~MatrixType()' follow besselj.o:besselj.cc:(.text+0x4c6a): undefined reference to `biry(FloatComplexNDArray const&, bool, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x4f8c): undefined reference to `biry(ComplexNDArray const&, bool, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x5095): undefined reference to `Array<std::complex<double> >::~Array()' besselj.o:besselj.cc:(.text+0x50bf): undefined reference to `Array<std::complex<float> >::~Array()' besselj.o:besselj.cc:(.text+0x50ff): undefined reference to `airy(FloatComplexNDArray const&, bool, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x5175): undefined reference to `airy(ComplexNDArray const&, bool, bool, ArrayN<int>&)' besselj.o:besselj.cc:(.text+0x58ca): undefined reference to `Array<std::string>::~Array()' besselj.o:besselj.cc:(.text+0x5951): undefined reference to `Array<std::string>::operator=(Array<std::string> const&)' besselj.o:besselj.cc:(.text+0x5960): undefined reference to `Array<std::string>::~Array()' besselj.o:besselj.cc:(.text$_ZN13string_vectorD1Ev[string_vector::~string_vector()]+0xe): undefined reference to `Array<std::string>::~Array()' besselj.o:besselj.cc:(.text$_ZN13string_vectorD0Ev[string_vector::~string_vector()]+0x14): undefined reference to `Array<std::string>::~Array()' besselj.o:besselj.cc:(.text$_ZN19FloatComplexNDArrayD1Ev[FloatComplexNDArray::~FloatComplexNDArray()]+0xe): undefined reference to `Array<std::complex<float> >::~Array()' besselj.o:besselj.cc:(.text$_ZN19FloatComplexNDArrayD0Ev[FloatComplexNDArray::~FloatComplexNDArray()]+0x14): undefined reference to `Array<std::complex<float> >::~Array()' besselj.o:besselj.cc:(.text$_ZN7MArrayNISt7complexIfEED0Ev[MArrayN<std::complex<float> >::~MArrayN()]+0x14): undefined reference to `Array<std::complex<float> >::~Array()' besselj.o:besselj.cc:(.text$_ZN7MArrayNISt7complexIfEED1Ev[MArrayN<std::complex<float> >::~MArrayN()]+0xe): undefined reference to `Array<std::complex<float> >::~Array()' besselj.o:besselj.cc:(.text$_ZN6ArrayNISt7complexIfEED0Ev[ArrayN<std::complex<float> >::~ArrayN()]+0x14): undefined reference to `Array<std::complex<float> >::~Array()' besselj.o:besselj.cc:(.text$_ZN6ArrayNISt7complexIfEED1Ev[ArrayN<std::complex<float> >::~ArrayN()]+0xe): more undefined references to `Array<std::complex<float> >::~Array()' follow besselj.o:besselj.cc:(.text$_ZN6ArrayNIiED0Ev[ArrayN<int>::~ArrayN()]+0x14): undefined reference to `Array<int>::~Array()' besselj.o:besselj.cc:(.text$_ZN6ArrayNIiED1Ev[ArrayN<int>::~ArrayN()]+0xe): undefined reference to `Array<int>::~Array()' besselj.o:besselj.cc:(.text$_ZN6Array2IiED0Ev[Array2<int>::~Array2()]+0x14): undefined reference to `Array<int>::~Array()' besselj.o:besselj.cc:(.text$_ZN6Array2IiED1Ev[Array2<int>::~Array2()]+0xe): undefined reference to `Array<int>::~Array()' besselj.o:besselj.cc:(.text$_ZN7NDArrayD0Ev[NDArray::~NDArray()]+0x14): undefined reference to `Array<double>::~Array()' besselj.o:besselj.cc:(.text$_ZN7NDArrayD1Ev[NDArray::~NDArray()]+0xe): undefined reference to `Array<double>::~Array()' besselj.o:besselj.cc:(.text$_ZN7MArrayNIdED0Ev[MArrayN<double>::~MArrayN()]+0x14): undefined reference to `Array<double>::~Array()' besselj.o:besselj.cc:(.text$_ZN7MArrayNIdED1Ev[MArrayN<double>::~MArrayN()]+0xe): undefined reference to `Array<double>::~Array()' besselj.o:besselj.cc:(.text$_ZN6ArrayNIdED0Ev[ArrayN<double>::~ArrayN()]+0x14): undefined reference to `Array<double>::~Array()' besselj.o:besselj.cc:(.text$_ZN6ArrayNIdED1Ev[ArrayN<double>::~ArrayN()]+0xe): more undefined references to `Array<double>::~Array()' follow besselj.o:besselj.cc:(.text$_ZN7NDArrayC1IiEERK6ArrayNIT_E[NDArray::NDArray<int>(ArrayN<int> const&)]+0x8b): undefined reference to `Array<double>::Array(Array<double> const&, dim_vector const&)' besselj.o:besselj.cc:(.text$_ZN7NDArrayC1IiEERK6ArrayNIT_E[NDArray::NDArray<int>(ArrayN<int> const&)]+0x93): undefined reference to `Array<double>::~Array()' besselj.o:besselj.cc:(.text$_ZN7NDArrayC1IiEERK6ArrayNIT_E[NDArray::NDArray<int>(ArrayN<int> const&)]+0xae): undefined reference to `Array<double>::~Array()' besselj.o:besselj.cc:(.text$_ZN14ComplexNDArrayD1Ev[ComplexNDArray::~ComplexNDArray()]+0xe): undefined reference to `Array<std::complex<double> >::~Array()' besselj.o:besselj.cc:(.text$_ZN14ComplexNDArrayD0Ev[ComplexNDArray::~ComplexNDArray()]+0x14): undefined reference to `Array<std::complex<double> >::~Array()' besselj.o:besselj.cc:(.text$_ZN7MArrayNISt7complexIdEED0Ev[MArrayN<std::complex<double> >::~MArrayN()]+0x14): undefined reference to `Array<std::complex<double> >::~Array()' besselj.o:besselj.cc:(.text$_ZN7MArrayNISt7complexIdEED1Ev[MArrayN<std::complex<double> >::~MArrayN()]+0xe): undefined reference to `Array<std::complex<double> >::~Array()' besselj.o:besselj.cc:(.text$_ZN6ArrayNISt7complexIdEED0Ev[ArrayN<std::complex<double> >::~ArrayN()]+0x14): undefined reference to `Array<std::complex<double> >::~Array()' besselj.o:besselj.cc:(.text$_ZN6ArrayNISt7complexIdEED1Ev[ArrayN<std::complex<double> >::~ArrayN()]+0xe): more undefined references to `Array<std::complex<double> >::~Array()' follow besselj.o:besselj.cc:(.text$_ZN17octave_value_listaSERKS_[octave_value_list::operator=(octave_value_list const&)]+0x34): undefined reference to `Array<std::string>::operator=(Array<std::string> const&)' besselj.o:besselj.cc:(.text$_ZN14FloatRowVectorD1Ev[FloatRowVector::~FloatRowVector()]+0xe): undefined reference to `Array<float>::~Array()' besselj.o:besselj.cc:(.text$_ZN14FloatRowVectorD0Ev[FloatRowVector::~FloatRowVector()]+0x14): undefined reference to `Array<float>::~Array()' besselj.o:besselj.cc:(.text$_ZN6MArrayIfED0Ev[MArray<float>::~MArray()]+0x14): undefined reference to `Array<float>::~Array()' besselj.o:besselj.cc:(.text$_ZN6MArrayIfED1Ev[MArray<float>::~MArray()]+0xe): undefined reference to `Array<float>::~Array()' besselj.o:besselj.cc:(.text$_ZN12FloatNDArrayD1Ev[FloatNDArray::~FloatNDArray()]+0xe): undefined reference to `Array<float>::~Array()' besselj.o:besselj.cc:(.text$_ZN12FloatNDArrayD0Ev[FloatNDArray::~FloatNDArray()]+0x14): more undefined references to `Array<float>::~Array()' follow besselj.o:besselj.cc:(.text$_ZN17octave_value_listD1Ev[octave_value_list::~octave_value_list()]+0x1d): undefined reference to `Array<std::string>::~Array()' besselj.o:besselj.cc:(.rdata$_ZTV5ArrayISsE[vtable for Array<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]+0x8): undefined reference to `Array<std::string>::~Array()' besselj.o:besselj.cc:(.rdata$_ZTV5ArrayISsE[vtable for Array<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]+0xc): undefined reference to `Array<std::string>::~Array()' besselj.o:besselj.cc:(.rdata$_ZTV5ArrayIdE[vtable for Array<double>]+0x8): undefined reference to `Array<double>::~Array()' besselj.o:besselj.cc:(.rdata$_ZTV5ArrayIdE[vtable for Array<double>]+0xc): undefined reference to `Array<double>::~Array()' |
|
|
Re: linking liboctave fails (lapack missing?)Benjamin Lindner wrote:
> > Linking liboctinterp.dll fails with the missing symbols attached: (I > omitted double errors in the same object file, otherwise the list is > *really* long and does not contain additional information): > > The first group stems from $(LIBCRUFT) missing as link dependency. > > The second group stems from missing > -lgdi32 (GetDeviceCaps) > -liberty (mkstemps) > The first is the windows system GDI library and the second is the > mingw/gcc support library. > Both are added to $LIBS during configure stage for the mingw platform > > The third group stems from $(FLIBS) missing as link dependency. > > To link successfully I have to do > > OCTINTERP_LINK_DEPS = $(RLD_FLAG) -L../liboctave $(LIBOCTAVE) > -L../libcruft $(LIBCRUFT) \ > $(HDF5_LIBS) $(ZLIB_LIBS) $(X11_LIBS) $(OPENGL_LIBS) $(CARBON_LIBS) \ > $(LIBS) $(FLIBS) Looking closely I see that $(LIBS) already contains -lgfortran as the configure summary tells: Fortran libraries: -lgfortran LIBS: -liberty -llapack -lblas -lgfortran -lblas -lm -lgdi32 -lws2_32 -luser32 -lkernel32 so actually it suffices to add simply $(LIBS), i.e. OCTINTERP_LINK_DEPS = $(RLD_FLAG) -L../liboctave $(LIBOCTAVE) -L../libcruft $(LIBCRUFT) \ $(HDF5_LIBS) $(ZLIB_LIBS) $(X11_LIBS) $(OPENGL_LIBS) $(CARBON_LIBS) \ $(LIBS) benjamin |
|
|
Re: linking liboctave fails (lapack missing?)On Fri, Aug 14, 2009 at 3:12 PM, John W. Eaton<jwe@...> wrote:
> It would be helpful if people building Octave on Windows and OS X > systems could configure and build the latest Octave sources on and > send a list of symbols that are unresolved when creating the libcruft, > liboctave, liboctinterp shared libraries, when linking the Octave > executable file, and when building the .oct files. This is what's needed to enable compilation under MSVC. Michael. |
|
|
Re: linking liboctave fails (lapack missing?)On 16-Aug-2009, Michael Goffioul wrote:
| On Fri, Aug 14, 2009 at 3:12 PM, John W. Eaton<jwe@...> wrote: | > It would be helpful if people building Octave on Windows and OS X | > systems could configure and build the latest Octave sources on and | > send a list of symbols that are unresolved when creating the libcruft, | > liboctave, liboctinterp shared libraries, when linking the Octave | > executable file, and when building the .oct files. | | This is what's needed to enable compilation under MSVC. I applied the changees for aclocal.m4 and src/Makefile.in. I'll fix the octave-bug script and c++ program with a change that adds all the new variables. For mkoctfile, shouldn't we drop all the extra libraries and by default only link with $(OCT_LINK_DEPS), same as we now have it for the .oct files that are part of Octave? Thanks, jwe |
|
|
Re: linking liboctave fails (lapack missing?)On 15-Aug-2009, Benjamin Lindner wrote:
| Benjamin Lindner wrote: | > | > Linking liboctinterp.dll fails with the missing symbols attached: (I | > omitted double errors in the same object file, otherwise the list is | > *really* long and does not contain additional information): | > | > The first group stems from $(LIBCRUFT) missing as link dependency. | > | > The second group stems from missing | > -lgdi32 (GetDeviceCaps) | > -liberty (mkstemps) | > The first is the windows system GDI library and the second is the | > mingw/gcc support library. | > Both are added to $LIBS during configure stage for the mingw platform | > | > The third group stems from $(FLIBS) missing as link dependency. | > | > To link successfully I have to do | > | > OCTINTERP_LINK_DEPS = $(RLD_FLAG) -L../liboctave $(LIBOCTAVE) | > -L../libcruft $(LIBCRUFT) \ | > $(HDF5_LIBS) $(ZLIB_LIBS) $(X11_LIBS) $(OPENGL_LIBS) $(CARBON_LIBS) \ | > $(LIBS) $(FLIBS) | | Looking closely I see that $(LIBS) already contains -lgfortran as the | configure summary tells: | | Fortran libraries: -lgfortran | LIBS: -liberty -llapack -lblas -lgfortran -lblas -lm | -lgdi32 -lws2_32 -luser32 -lkernel32 I think it is a mistake that $(BLAS_LIBS) and $(FLIBS) appear in LIBS. jwe |
|
|
Re: linking liboctave fails (lapack missing?)On 15-Aug-2009, Benjamin Lindner wrote:
| Now for the undefined reference linker errors: I checked in some additional changes. I will deal with the mkoctfile and octave-bug scripts/programs later, but is there anything that I missed for building libcruft, liboctave, liboctinterp, and the .oct files? Thanks, jwe |
| < Prev | 1 - 2 | Next > |
| Free embeddable forum powered by Nabble | Forum Help |