[Top][All Lists]

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

library checks are driving me crazy!

From: aaragon
Subject: library checks are driving me crazy!
Date: Sun, 23 Mar 2008 21:14:16 -0700 (PDT)

Hello everyone,

After 2 hours of trying to make the configure script find three libraries, I
decided to ask someone before I throw my computer through the window. This
is the picture: my code uses three libraries, and these are installed in
non-standard directories (under $HOME/Lib). I'm using CGAL, loki, superlu
and blas. So, I configure my code with the following command:

./configure CXX=g++-mp-4.3 CXXFLAGS="-I$HOME/Lib/loki/include
-I$HOME/Lib/CGAL/include -I$HOME/Lib/SuperLU" LDFLAGS="-L$HOME/Lib/loki/lib
-L$HOME/Lib/CGAL/lib -L$HOME/Lib/SuperLU" LIBS="-lblas -lsuperlu_3.0 -lCGAL

So you see I'm using a different version for the C++ compiler than that of
the system. I also include the include paths and paths were all the
libraries are. So when I try to compile the code I get:

Undefined symbols:
  "_dtrsv__", referenced from:
      _sp_dtrsv in libsuperlu_3.0.a(dsp_blas2.o)
      _sp_dtrsv in libsuperlu_3.0.a(dsp_blas2.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status

Those symbols belong to the blas library. So it turns out that superlu
depends on the blas library. I compiled superlu with its own blas library so
the libblas.a is also in the same directory where libsuperlu_3.0.a is. So I
don't understand what's going on. I found that the blas library is also
installed in the system in /usr/lib:

>$ ls /usr/lib/*blas*/usr/lib/libblas.dylib     /usr/lib/libcblas.dylib

so probably it's trying to find the symbols in the wrong library?

Now, when I hard-code the blas library in the, my code compiles

noinst_PROGRAMS = fem.out
fem_out_SOURCES = $(cxx_sources) main.cxx
fem_out_LDADD = libxfem.a /Users/aaragon/Lib/SuperLU/libblas.a

But of course this is a bad hack.

Then, I tried for a long time to make the macros detect the libraries, but
not a single success!

AC_SEARCH_LIBS([dgemm], [blas cblas],,[echo "ERROR: Could not blas library"
&& exit 1])
# I think the macro above detects the one installed in the system
AC_SEARCH_LIBS([dCreate_CompCol_Matrix], [superlu_3.0 superlu],,[echo
"ERROR: Could not find superlu" && exit 1])
# I cannot get anything from the call above

AC_CHECK_LIB([superlu_3.0],[_dCreate_CompCol_Matrix],,"echo ERROR: superlu
not found." && exit 1)
#another attempt, failure

Why are the macros not detecting the libraries? I specify in the command
line the paths were the libraries are, so I guess they should be taken into
account when these macros search, right? Am I missing something???

Please help!!! Thank you,


View this message in context:
Sent from the Gnu - Autoconf - General mailing list archive at

reply via email to

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