Связывание R.h Rembedded.h с кодом C

Я включаю несколько заголовочных файлов:

#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?


person user1971988    schedule 04.10.2013    source источник


Ответы (1)


Заголовочные файлы не связаны, только включены. Ошибки означают именно то, что они говорят: компилятор не может их найти. Убедитесь, что они находятся в стандартном каталоге include. Возможно, вы не make install использовали библиотеку R. Если файлы заголовков находятся в том же каталоге, что и другие ваши исходные файлы, включите их в двойные кавычки вместо угловых скобок:

#include "R.h"

Вы можете добавить другие каталоги в список стандартных включаемых каталогов с флагом -I в ГСК.

person Kninnug    schedule 04.10.2013