getfem-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Getfem-users] GMM++ and Lapack Linking Problem


From: Yves Renard
Subject: Re: [Getfem-users] GMM++ and Lapack Linking Problem
Date: Mon, 10 Dec 2012 11:00:58 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0


Dear Nick Cummings,

I tried t compile your program and it compiles correctly on my configuration. So it is hard to me to help you.
May be you can try to change the order of libraries in the link if you did not tried it.

Yves.




Le 08/12/2012 17:47, Nick Cummings a écrit :
I recently have tried to re-compile a simple program I wrote previously using GMM++ and Lapack but (after updating my operating system) am now having an error during the linking process.  The problem seems specifically linked to the function geev_interface_right. 

Below a very simple test program using that function.  When I attempt to compile it using g++ on my system (information below), I get the error "collect2: ld returned 1 exit status." It seems to be complaining about "undefined reference to `zgeev_'," but as far as I can tell I have all the required libraries, so I can quite understand what the problem is.  The full output is below.  I even used the tool nm on the Lapack library to confirm that the symbol zgeev_ appears in the library.  I realize that the underlying problem may not be with GMM++ but rather with one of the packages in my Linux distribution or just some other simple error on my part; my hope is that people on this mailing list may at least have a notion of the root of the problem (or perhaps have run into it themselves) so that I can seek answers in the appropriate place.

System information:

Ubuntu Linux 12.04.1
GMM++ package -- libgmm++-dev (4.1.1-5ubuntu1)
Lapack package -- liblapack3gf (3.3.1-1)
Blas package -- libblas3gf (1.2.20110419-2ubuntu1)
gFortran package -- libgfortran3 (4.6.3-1ubuntu5)


Compile command and output:

$ g++ -llapack -lblas -lgfortran bug.cc
/tmp/ccPq2tbF.o: In function `void gmm::geev_interface_right<std::vector<std::complex<double>, std::allocator<std::complex<double> > > >(gmm::dense_matrix<std::complex<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, gmm::dense_matrix<std::complex<double> >&)':
bug.cc:(.text._ZN3gmm20geev_interface_rightISt6vectorISt7complexIdESaIS3_EEEEvRKNS_12dense_matrixIS3_EERKT_RS7_[void gmm::geev_interface_right<std::vector<std::complex<double>, std::allocator<std::complex<double> > > >(gmm::dense_matrix<std::complex<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, gmm::dense_matrix<std::complex<double> >&)]+0x208): undefined reference to `zgeev_'
bug.cc:(.text._ZN3gmm20geev_interface_rightISt6vectorISt7complexIdESaIS3_EEEEvRKNS_12dense_matrixIS3_EERKT_RS7_[void gmm::geev_interface_right<std::vector<std::complex<double>, std::allocator<std::complex<double> > > >(gmm::dense_matrix<std::complex<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, gmm::dense_matrix<std::complex<double> >&)]+0x35d): undefined reference to `zgeev_'
collect2: ld returned 1 exit status


Test code (bug.cc):

#include <complex>
#define GMM_USES_LAPACK
#include <gmm/gmm.h>

typedef std::complex<double> scalar;

int main()
{
    try {
       
        gmm::dense_matrix<scalar> A(4,4);
        gmm::dense_matrix<scalar> U(4,4);
        A(0,1) = 1; A(1,0) = -1; A(2,2)=3; A(3,3)=4;
        std::vector<scalar> Eig(4);
        gmm::geev_interface_right(A,Eig,U);
       
    }
    GMM_STANDARD_CATCH_ERROR;
   
    return 0;
}


_______________________________________________
Getfem-users mailing list
address@hidden
https://mail.gna.org/listinfo/getfem-users


-- 

  Yves Renard (address@hidden)       tel : (33) 04.72.43.87.08
  Pole de Mathematiques, INSA-Lyon             fax : (33) 04.72.43.85.29
  20, rue Albert Einstein
  69621 Villeurbanne Cedex, FRANCE
  http://math.univ-lyon1.fr/~renard

---------

reply via email to

[Prev in Thread] Current Thread [Next in Thread]