[numeric-bindings] NumericBindings conflicts with LAPACKE

Marco Guazzone <[email protected]>
Newsgroups gmane.comp.lib.boost.ublas
Message-ID <CABbE_O7YvCtYuYs2WgJN8MOazXhSkj60s_4=yAUmCOk0X7ma-A@mail.gmail.com>
Hello,

I have two libraries that uses LAPACK subroutines, but one of them
uses Boost.NumericBindings and the other one uses LAPACKE (the
official LAPACK C interface).

I have troubles to make them work together since I got many conflict
errors at compilation time.

Here below is a stupid (but effective) example:

--- [boost_lapacke.cpp] ---
#include <boost/numeric/bindings/lapack/computational/getrf.hpp>
#include <lapacke.h>

int main()
{

}
--- [/boost_lapacke.cpp] ---

Now, try to compile it. For instance, in my case:

$ g++ -Wall -Wextra -ansi -pedantic -I/usr/include/lapacke
-I$HOME/sys/src/git/boost -I$HOME/sys/src/svn/boost-numeric_bindings
-o boost_lapacke boost_lapacke.cpp -llapack -lblas -llapacke -lm

The errors I get are like the one below:

--- [error] ---
In file included from boost_lapacke.cpp:2:0:
/usr/include/lapacke/lapacke.h:11760:56: error: conflicting
declaration of C function ‘void sgetrf_(int*, int*, float*, int*,
int*, int*)’
                     lapack_int* ipiv, lapack_int *info );
                                                        ^
In file included from
/home/.../sys/src/svn/boost-numeric_bindings/boost/numeric/bindings/lapack/detail/lapack_names.h:17:0,
                 from
/home/.../sys/src/svn/boost-numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h:17,
                 from
/home/.../sys/src/svn/boost-numeric_bindings/boost/numeric/bindings/lapack/computational/getrf.hpp:39,
                 from boost_lapacke.cpp:1:
/home/.../sys/src/svn/boost-numeric_bindings/boost/numeric/bindings/lapack/detail/lapack_names.h:326:36:
note: previous declaration ‘void sgetrf_(const fortran_int_t*, const
fortran_int_t*, float*, const fortran_int_t*, fortran_int_t*,
fortran_int_t*)’
 #define LAPACK_SGETRF FORTRAN_ID2( sgetrf, SGETRF )
                                    ^
/home/.../sys/src/svn/boost-numeric_bindings/boost/numeric/bindings/detail/config/fortran.hpp:33:32:
note: in definition of macro ‘FORTRAN_ID2’
 #define FORTRAN_ID2( id, ID2 ) id##_
                                ^
/home/.../sys/src/svn/boost-numeric_bindings/boost/numeric/bindings/lapack/detail/lapack.h:940:6:
note: in expansion of macro ‘LAPACK_SGETRF’
 void LAPACK_SGETRF( const fortran_int_t* m, const fortran_int_t* n, float* a,
      ^
--- [/error] ---

Any idea on how to solve these conflicts?

My system is:
- Linux Fedora 22 x86_64
- LAPACK 3.5.0
- Boost git version
- Boost.NumericBindings svn version
- GCC 5.1.1

Thank you very much.

Best,

Marco
_______________________________________________
ublas mailing list
[email protected]
http://lists.boost.org/mailman/listinfo.cgi/ublas
Sent to: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.