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/blas/lapack 与 cmake 链接(未定义对 `dgemv_' 的引用)
在 Mac OS X 上安装 C++ Armadillo 库