我是 C++ 编程的新手。这似乎是一个常见错误,但我似乎无法解决:我正在尝试使用该gsl
库,但没有运气:/usr/bin/g++
例如,用于编译以下最小(应该是)工作示例(可在此处获得)。
#include <iostream>
#include <gsl/gsl_linalg.h>
int main() {
cout << "This is a test" << endl;
double A_data[] = {
0.57092943, 0.00313503, 0.88069151, 0.39626474,
0.33336008, 0.01876333, 0.12228647, 0.40085702,
0.55534451, 0.54090141, 0.85848041, 0.62154911,
0.64111484, 0.8892682 , 0.58922332, 0.32858322
};
double b_data[] = {
1.5426693 , 0.74961678, 2.21431998, 2.14989419
};
// Print the values of A and b using GSL print functions
std::cout << "A = \n";
gsl_matrix_fprintf (stdout, &A.matrix, "%lf");
return 0;
}
产量:
fatal error: 'gsl/gsl_linalg.h' file not found
我的问题是:如何正确声明 gsl 库的路径(在 MacOSX 上)?
我已经尝试过,但没有成功(或没有确定我做错了什么)
- 按照此处的建议重新定义路径
- 编译使用:
g++
首先,然后使用g++ -std=c++11 path/to/script.cpp `pkg-config --libs gsl`
(我尝试运行的脚本中使用的命令)和g++ -Wall -I/opt/homebrew/Cellar/gsl/2.7.1/include -c path/to/script.cpp
(如建议的here)。
一些可能有用的附加信息:
- 我在 Mac 上,OSX Monterey 12.1,带有 M1 芯片
- 我正在使用 VS 代码,但我也在 Xcode 中尝试过,但没有成功
- 我使用自制软件安装了 gsl 库(所以库被放置在
/opt/homebrew/Cellar/gsl/2.7.1
地址而不是/usr/local/include/gsl
)。 - 我曾经
brew update-reset
回到原来的设置,以防我做错了