使用C代码链接R.h Rembedded.h

时间:2013-10-04 13:03:50

标签: c r static-linking

我包含了几个头文件:

#include <gsl/gsl_machine.h>
#include <gsl/gsl_rng.h>
#include <gsl/gsl_randist.h>
#include <gsl/gsl_cdf.h>
#include <gsl/gsl_cblas.h>
#include <gsl/gsl_sf_gamma.h>
#include <gsl/gsl_vector.h>
#include <gsl/gsl_matrix.h>
#include <gsl/gsl_blas.h>
#include <gsl/gsl_linalg.h>

#include <R.h>
#include <Rmath.h>
#include <Rembedded.h>
#include <Rdefines.h>
#include <R_ext/Lapack.h>
#include <R_ext/Linpack.h>

我可以使用以下命令链接blas和gsl库(-lm用于数学?):

gcc -arch x86_64 myfile.c -o myfile -lgsl -lm -lgslcblas

但我得到错误:

myfile.c:21:15: error: R.h: No such file or directory
myfile.c:22:19: error: Rmath.h: No such file or directory
myfile.c:23:23: error: Rembedded.h: No such file or directory
myfile.c:24:22: error: Rdefines.h: No such file or directory
myfile.c:25:26: error: R_ext/Lapack.h: No such file or directory
myfile.c:26:27: error: R_ext/Linpack.h: No such file or directory

如何在编译C代码时链接头文件?

1 个答案:

答案 0 :(得分:0)

页眉文件未链接,仅包含在内。错误意味着他们所说的:编译器无法找到它们。确保它们位于标准包含目录中。也许你没有make install R库。如果头文件与其他源文件位于同一目录中,则使用双引号而不是尖括号包含它们:

#include "R.h"

您可以将其他目录添加到标准包含目录列表中,并将-I flag添加到GCC。