我一直在努力让armadillo-5.200.1和openblas(或lapacke)与visual studio 2010一起工作一周以来,我仍然有一些未解决的外部符号错误与blas和lapack库中的函数。 首先,我尝试从预先构建的二进制文件中为windows安装openblas并设置一个新项目并使用下面的示例代码对其进行测试:
#include <cblas.h>
#include <iostream>
#include <vector>
using namespace std;
int main()
{
blasint n = 10;
blasint in_x =1;
blasint in_y =1;
std::vector<double> x(n);
std::vector<double> y(n);
double alpha = 10;
std::fill(x.begin(),x.end(),1.0);
std::fill(y.begin(),y.end(),2.0);
cblas_daxpy( n, alpha, &x[0], in_x, &y[0], in_y);
//Print y
for(int j=0;j<n;j++)
std::cout << y[j] << "\t";
std::cout << std::endl;
}
我有一个未解析的外部符号«cblas_daxpy»错误。我尝试使用code :: blocks构建相同的项目并得到相同的错误。
我下载并设置了msys,以便能够编译我在github(https://github.com/xianyi/Openblas)上下载的源代码并尝试使其在code :: blocks和visual studio上都能正常工作,但我仍然遇到了同样的错误
然后我尝试使用自己的笔记本电脑,因为它有Linux ubuntu 14.04 LTS。所以,我克隆了github并编译了源代码,并尝试在另一个代码:: blocks项目中进行设置,并使用相同的示例代码对其进行测试,并获得有关pthread_create和pthread_join等函数的未定义引用错误。
我还尝试使用cmake编译lapacke源代码,遵循以下页面的说明:https://icl.cs.utk.edu/lapack-for-windows/lapack/。我使用了示例,测试,项目构建正确,但是当我执行程序时,我有一个弹出窗口消息,说无法找到liblapacke.dll。
要在visual studio中使用openblas,我按照第三方库的说明进行操作:
add the location of the header files to "C/C++->Additional Include Directories"
add the .lib files to the "Linker->Input->Additional Dependencies"
add the location of the .lib files to "Linker->General->Additional Library Directories"
我需要至少使用Windows 7以及Visual Studio 2010更好地完成这项工作,因为我们在工作中使用它。
答案 0 :(得分:0)
你应该将dll文件复制到system32方向或y
的Debug或Release文件夹