c++ - macOS Catalina 上 SuperLU 的犰狳错误
问题描述
我一直在尝试使用犰狳线性代数库运行以下程序。使用稀疏矩阵,我需要安装 SUPERLU 4.3。我首先安装了 SUPERLU 5.2,但由于犰狳文档说它只适用于 4.3 版,所以我安装了 SUPERLU 4.3。
//
// main.cpp
// SpMat_Test
//
// Created by Arash Fahim on 1/28/20.
// Copyright © 2020 Arash Fahim. All rights reserved.
//
#include <iostream>
#include <armadillo>
using namespace arma;
int main() {
// insert code here...
sp_mat A = sprandu(2000, 2000, 0.01);
vec B=ones<vec>(2000);
vec x = spsolve(A, B);
return 0;
}
添加SUPERLU前,程序编译生成
error: spsolve(): use of SuperLU must be enabled
libc++abi.dylib: terminating with uncaught exception of type std::logic_error: spsolve(): use of SuperLU must be enabled
Program ended with exit code: 9
但是,在SUPERLU之后,错误信息变成了
$ g++ -g main.cpp -larmadillo
In file included from main.cpp:10:
In file included from /usr/local/include/armadillo:88:
/usr/local/include/armadillo_bits/include_superlu.hpp:95:12: error: '/supermatrix.h' file not found, did you mean 'supermatrix.h'?
#include ARMA_INCFILE_WRAP(ARMA_SLU_SUPERMATRIX_H)
^
/usr/local/include/armadillo_bits/compiler_setup.hpp:79:30: note: expanded from macro 'ARMA_INCFILE_WRAP'
#define ARMA_INCFILE_WRAP(x) <x>
^
In file included from main.cpp:10:
In file included from /usr/local/include/armadillo:88:
/usr/local/include/armadillo_bits/include_superlu.hpp:96:12: error: '/superlu_enum_consts.h' file not found, did you mean 'superlu_enum_consts.h'?
#include ARMA_INCFILE_WRAP(ARMA_SLU_SUPERLU_ENUM_CONSTS_H)
^
/usr/local/include/armadillo_bits/compiler_setup.hpp:79:30: note: expanded from macro 'ARMA_INCFILE_WRAP'
#define ARMA_INCFILE_WRAP(x) <x>
^
2 errors generated.
我检查了两个文件'/superlu_enum_consts.h'和'/supermatrix.h'都存在于编译器应该找到的路径中,我猜。我太大了,无法理解出了什么问题。
解决方案
推荐阅读
- django - Django 模型设置,但不是每个对象
- mysql - SpringBoot在查询所有记录时无法找到MySQL表
- optimization - 计算 8 个 AVX 单精度浮点向量的 8 个水平和
- html - 移动到源文件后,HTML 脚本不再起作用 - 为什么会这样?怎么修?
- electron - applyConstraints()、getCapabilities() 不适用于 Windows 的 Electron
- php - 如果第一个查询没有返回结果,则使用第二个查询
- r - 在一个列表列表中转换多个向量
- c++ - 以一种有凝聚力的方式将班级聚集在一起
- mongodb - 如何使用 mongodb 的聚合框架将字段从 ISODate 转换为毫秒?
- perl - 将文件数据转换为字符串 perl