首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将OpenBLAS链接到MinGW

将OpenBLAS链接到MinGW
EN

Stack Overflow用户
提问于 2019-08-31 20:16:17
回答 1查看 304关注 0票数 1

我正在尝试用Windows上的MinGW w64编译器来链接OpenBLAS库。

这是我的代码:

代码语言:javascript
复制
#include <cstdio>
#include <cblas.h>
#include <cstdlib>

int main(){
    double  m[10],n[10];
    int i, result;

    for(i=0;i<10;i++)
        m[i] = 1.0l*rand()/RAND_MAX;
    for(i=0;i<10;i++)
        n[i] = 1.0l*rand()/RAND_MAX;
    result = cblas_ddot(10, m, 1, n, 1);
    return 0;
}

并使用以下命令进行编译:

代码语言:javascript
复制
g++ ^ -IC:\OpenBLAS-0.3.6-x64\include -LC:\OpenBLAS-0.3.6-x64\lib -lopenblas blas.cpp

并得到一个错误

代码语言:javascript
复制
undefined reference to `cblas_ddot'

我从here下载了预编译的二进制文件,使用的是64位的Windows、g++ (x86_64-win32-seh-rev0, Built by MinGW-W64 project) 8.1.0

如何修复此错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-02 15:35:39

一般的建议是始终将源文件和目标文件放在链接库之前。

一般来说,并不是所有的库函数都会被使用,而是只使用主代码源需要的那些函数。然后,在查看库之前,链接器需要知道未定义的符号。

那么把blas.cpp放在-lopenblas之前应该行得通。

代码语言:javascript
复制
g++ ^ -IC:\OpenBLAS-0.3.6-x64\include -LC:\OpenBLAS-0.3.6-x64\lib blas.cpp -lopenblas
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57737949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档