Armadillo + BLAS + LAPACK: Linking error?

一个人想着一个人 提交于 2019-11-29 07:40:02

Thank you so much to osgx! After reading his comment, I took a second look at the README file! It turns out I was missing '-O1 -larmadillo' in the command!

Here's the command I used to get it working:

g++ example1.cpp -o example1 -O1 -larmadillo

Stupid mistake, I know.... It just goes to remind you how important it is to read the README.

The README also mentions:

If you get linking errors, or if Armadillo was installed manually and you specified that LAPACK and BLAS are available, you will need to explicitly link with LAPACK and BLAS (or their equivalents), for example:

g++ example1.cpp -o example1 -O1 -llapack -lblas

I didn't have to include '-llapack -lblas' but maybe this will help anyone else who's having similar problems.

There's an oddity I just discovered by comparing previously working compilations of code with the very problem of this thread, stressing the involvement of the gnu cc (I'm no expert in this): on my machine compilation success depends on the order of parameters to the gcc/g++ where g++ infile -o outfile -libarmadillo ... worked, but g++ -libarmadillo infile -o outfile ... didnt with (almost) the same error as mentioned above. (hope that helps).

As of 5.0.0 (might also apply to earlier versions)

You actually need -larmadillo, on Fedora 21 -llapack and -lopenblas are not excplicitly necessary anymore.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!