Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failure in linking xtensor-blas with lapack/blas? #219

Open
JoshuaLau0220 opened this issue Sep 14, 2022 · 3 comments
Open

Failure in linking xtensor-blas with lapack/blas? #219

JoshuaLau0220 opened this issue Sep 14, 2022 · 3 comments

Comments

@JoshuaLau0220
Copy link

I'm trying to compile a program that uses xtensor-blas, when I encounter a linker error. The error message is

...
testTensor.o: In function `int cxxlapack::getrf<int>(int, int, double*, int, int*)':
/usr/local/include/xflens/cxxlapack/interface/getrf.tcc:76: undefined reference to `dgetrf_'
collect2: error: ld returned 1 exit status
...

where testTensor.o is calling auto d = xt::linalg::det(a);.
I'm using lapack-3.10.1 and blas-3.10.0, and I have supplied the -lblas -llapack -DHAVE_CBLAS=1 tag to g++, as suggested by the documention. I've also tried using the alternative tag -DXTENSOR_USE_FLENS_BLAS, which results in the same error message.

Any help or suggestion is hugely appreciated. Thanks!

@willamhou
Copy link

I'm trying to compile a program that uses xtensor-blas, when I encounter a linker error. The error message is

...
testTensor.o: In function `int cxxlapack::getrf<int>(int, int, double*, int, int*)':
/usr/local/include/xflens/cxxlapack/interface/getrf.tcc:76: undefined reference to `dgetrf_'
collect2: error: ld returned 1 exit status
...

where testTensor.o is calling auto d = xt::linalg::det(a);. I'm using lapack-3.10.1 and blas-3.10.0, and I have supplied the -lblas -llapack -DHAVE_CBLAS=1 tag to g++, as suggested by the documention. I've also tried using the alternative tag -DXTENSOR_USE_FLENS_BLAS, which results in the same error message.

Any help or suggestion is hugely appreciated. Thanks!

Do u resolve this problem? I have the same one.

@JoshuaLau0220
Copy link
Author

JoshuaLau0220 commented Dec 14, 2022

@willamhou In my case (I'm on Ubuntu), I have to also supply -lgfortran after -lblas -llapack as these two libraries depends on it.
But when switching to OSX, it seems like -lgfortran should NOT be supplied.

@willamhou
Copy link

@willamhou In my case (I'm on Ubuntu), I have to also supply -lgfortran after -lblas -llapack as these two libraries depends on it. But when switching to OSX, it seems like -lgfortran should NOT be supplied.

Thanks u for your reply. I solve this problem, add "-lcblas -lblas -llapack `-lgfortran" to complie the binary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants