Код в основном. cc:
#include <Eigen/Sparse>
#include <unsupported/Eigen/ArpackSupport>
int main()
{
...
Eigen::ArpackGeneralizedSelfAdjointEigenSolver<Eigen::SparseMatrix<double>> solver;
solver.compute(...);
...
}
Следующая команда
c++ -I /path/to/eigen -std=c++17 main.cc
приводит к следующим ошибкам:
Undefined symbols for architecture x86_64:
"_dsaupd_", referenced from:
Eigen::internal::arpack_wrapper<double, double>::saupd(int*, char*, int*, char*, int*, double*, double*, int*, double*, int*, int*, int*, double*, double*, int*, int*) in arpack-946df6.o
"_dseupd_", referenced from:
Eigen::internal::arpack_wrapper<double, double>::seupd(int*, char*, int*, double*, double*, int*, double*, char*, int*, char*, int*, double*, double*, int*, double*, int*, int*, int*, double*, double*, int*, int*) in arpack-946df6.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Что такое проблема и как ее можно решить?