Armadillo C++ 和 BLAS 和 ATLAS 在 mingw32 下找不到 lapack blas

Posted

技术标签:

【中文标题】Armadillo C++ 和 BLAS 和 ATLAS 在 mingw32 下找不到 lapack blas【英文标题】:Armadillo C++ and BLAS and ATLAS cannot find lapack blas under mingw32 【发布时间】:2013-03-03 17:12:03 【问题描述】:

全部,

总结...

我正在尝试编译example.cpp arma.sourceforge.net/docs.html#example_prog

我尝试用 lapack 和 blas 编译和链接犰狳。 我总是收到同样的错误。 返回此消息

ld.exe: cannot find -llapack
ld.exe: cannot find -lblas

我验证了我下面的所有路径都是正确的并运行了以下。

g++ example.cpp -o example -O1  -I..\..\lapackblas_headers\lapack -I..\..\lapackblas_headers\blas  -I..\include 

-L....\lapackblas_MD_debug -llapack -lblas

返回此消息

ld.exe: cannot find -llapack
ld.exe: cannot find -lblas

来自

f:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: cannot find -llapack
f:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: cannot find -lblas

collect2: ld 返回 1 个退出状态

安德烈·米库莱克 Andre_Mikulec@Hotmail.com

详情如下...

我下载了 LAPACK 的预编译版本,而 BLAS 是从 ... http://www.fi.muni.cz/~xsvobod2/misc/lapack/

我按照这里的说明进行操作

https://sourceforge.net/projects/arma/files/latest/download
http://sourceforge.net/projects/arma/files/armadillo-3.800.0.tar.gz
file:///M:/YDrive/All_Economics/eclipse_workspace/armadillo-3.800.0/README.txt

来自

arma.sourceforge.net/download.html#windows

我有 lapack 和 blas 库

ls -alrt ../../lapackblas-MD-debug

-rw-r--r--  1 Administrator Administrators   27092 Oct  5  2009 blas_win32_MDd.lib
-rwxr-xr-x  1 Administrator Administrators  280576 Oct  5  2009 blas_win32_MDd.dll
-rw-r--r--  1 Administrator Administrators  254886 Oct  5  2009 lapack_win32_MDd.lib
-rwxr-xr-x  1 Administrator Administrators 3774464 Oct  5  2009 lapack_win32_MDd.dll
drwxr-xr-x  2 Administrator Administrators       0 Mar  3 08:02 .
drwxr-xr-x 10 Administrator Administrators       0 Mar  3 08:06 ..

ls -alrt ../../lapackblas_headers/blas

MANYFILES.h

ls -alrt ../../lapackblas_headers/lapack

MANYFILES.h

ls -alrt ../include

MANYFILES.h

我尝试用 lapack 和 blas 编译和链接犰狳。 我总是收到同样的错误。

M:
cd \YDrive\All_Economics\eclipse_workspace\armadillo-3.800.0\examples

M:\YDrive\All_Economics\eclipse_workspace\armadillo-3.800.0\examples>

我尝试了相对路径

g++ example.cpp -o example -O1  -I..\..\lapackblas_headers\lapack -I..\..\lapackblas_headers\blas  -I..\include 

-L..\..\lapackblas_MD_debug -llapack -lblas 

我试过绝对路径

g++ example.cpp -o example -O1  -IM:\YDrive\All_Economics\eclipse_workspace\lapackblas_headers\lapack  

-IM:\YDrive\All_Economics\eclipse_workspace\lapackblas_headers\blas  

-IM:\YDrive\All_Economics\eclipse_workspace\armadillo-3.800.0\include 

-LM:\YDrive\All_Economics\eclipse_workspace\lapackblas_MD_debug -llapack -lblas

在所有情况下返回的信息都在这里

ld.exe: cannot find -llapack
ld.exe: cannot find -lblas

f:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: cannot find -llapack
f:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: cannot find -lblas
collect2: ld returned 1 exit status

有什么想法吗?

谢谢。 安德烈·米库莱克 Andre_Mikulec@Hotmail.com

【问题讨论】:

-L....\lapackblas_MD_debug -llapack -lblas 你少了一个`\`。这只是您帖子中的错字吗? 这不是我的错字。那是网页执行一些魔术,在我粘贴代码时删除了我的斜线。这是我的原始命令: g++ example.cpp -o example -O1 -I..\..\lapackblas_headers\lapack -I..\..\lapackblas_headers\blas -I..\include -L..\.. \lapackblas_MD_debug -llapack -lblas 不存在拼写错误 "-L..\..\lapackblas_MD_debug" 【参考方案1】:

我找到了部分解决方案。

g++ -o example example.cpp ..\..\lapackblas_MD_debug\blas_win32_MDd.dll ..\..\lapackblas_MD_debug\lapack_win32_MDd.dll -O1  -I..\..\lapackblas_headers\lapack -I..\..\lapackblas_headers\blas  -I..\include 

这个页面解释了它。 http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs

基本上,我需要在主程序后面的命令行中直接指定DLL文件

另外,要完成解决方案,我必须安装(尚未)依赖的 DLL 来自英特尔 Fortran 编译器(或 30 天评估)。

这个页面(我是否获得了 DLL)解释了它(在细则中)。

LAPACK & BLAS precompiled binaries for Win32 platform
http://www.fi.muni.cz/~xsvobod2/misc/lapack/

【讨论】:

以上是关于Armadillo C++ 和 BLAS 和 ATLAS 在 mingw32 下找不到 lapack blas的主要内容,如果未能解决你的问题,请参考以下文章

Armadillo C++ 配置检查

将 armadillo/blas/lapack 与 cmake 链接(未定义对 `dgemv_' 的引用)

在 Mac OS X 上安装 C++ Armadillo 库

在 Linux 中快速制作 Armadillo C++ 库 - Ubuntu

犰狳 eigs_sym:分解失败

求救,在Win7下怎么安装Amardillo还有LAPACK和BLAS