[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]