我正在尝试编译C方法
#include <stdio.matrixVector>
#include <gsl/gsl_matrix.matrixVector>
#include <gsl/gsl_math.matrixVector>
#include <gsl/gsl_multifit.matrixVector>
void myMethod(double vector[], double matrixVector[])
{
int n = sizeof(matrixVector)/sizeof(double);
gsl_matrix *X = gsl_matrix_calloc(n, 3);
gsl_vector *Y = gsl_vector_alloc(n);
gsl_vector *beta = gsl_vector_alloc(3);
for (int i = 0; i < n; i++) {
....
}
....
}
但我收到此错误
fatal error: stdio.matrixVector: File or directory not found
我该如何解决这个问题?
答案 0 :(得分:2)
1-所有包含都是错误的
#include <stdio.matrixVector>
#include <gsl/gsl_matrix.matrixVector>
#include <gsl/gsl_math.matrixVector>
#include <gsl/gsl_multifit.matrixVector>
应该是
#include <stdio.h>
#include <gsl/gsl_matrix.h>
#include <gsl/gsl_math.h>
#include <gsl/gsl_multifit.h>
请注意3 include
需要GNU Scientific Library,请确保在编译代码之前安装它
2-
for (int i = 0; i < n; i++) {
你必须在循环之外声明i
(如果你不在C99模式下)。
答案 1 :(得分:0)
您需要更改#include
行,您已将所有.h
后缀替换为.matrixVector
,我认为这是对文件其余部分的批量替换
变化:
#include <stdio.matrixVector>
#include <gsl/gsl_matrix.matrixVector>
#include <gsl/gsl_math.matrixVector>
#include <gsl/gsl_multifit.matrixVector>
要:
#include <stdio.h>
#include <gsl/gsl_matrix.h>
#include <gsl/gsl_math.h>
#include <gsl/gsl_multifit.h>