Я пытаюсь скомпилировать примеры в стандартном репозитории примеров пакета RInside.Я уже пытался запустить Makefile, который уже был в хранилище, не работал.До сих пор я сталкивался с несколькими ошибками, некоторые из которых были устранены до сих пор.Проблема в том, что каждый раз, когда я решаю ошибку, происходит одно из двух: появляется новая ошибка или появляется старая.Это код различных make-файлов с соответствующей ошибкой:
1) Makefile без -L
all:
g++ -I/usr/share/R/include -I/home/manuel/R/x86_64-pc-linux-gnu-library/3.4/Rcpp/include -I/home/manuel/R/x86_64-pc-linux-gnu-library/3.4/RInside/include rinsidetest.cpp
, как и ожидалось, применение make к этому файлу возвращает ошибки о неопределенных ссылках на RInside:: 's
undefined reference to `RInside::RInside(int, char const* const*, bool, bool, bool)'
2) Makefile со ссылками -L
all:
g++ -I/usr/share/R/include -I/home/manuel/R/x86_64-pc-linux-gnu-library/3.4/Rcpp/include -I/home/manuel/R/x86_64-pc-linux-gnu-library/3.4/RInside/include -L/usr/lib/R/site-library/RInside/lib -L/home/manuel/R/x86_64-pc-linux-gnu-library/3.4/Rcpp/libs -lRInside -lRcpp -L/usr/lib/R/lib -lR -Wl,-rpath,/home/manuel/R/x86_64-pc-linux-gnu-library/3.4/Rcpp/libs -lRInside -Wl,-rpath,/home/manuel/R/x86_64-pc-linux-gnu-library/3.4/RInside/lib rinsidetest.cpp
Ошибка была такая:
/usr/bin/ld: cannot find -lRcpp
получается, что.поэтому файл в хранилище libs назывался Rcpp.so, поэтому я переименовал его в libRcpp.so
, и ошибка исчезла.
3) После переименования Rcpp.so
в libRcpp.so
я применил make к тому же make-файлупункта 2) и снова были ошибки о неопределенных ссылках на RInside :::
rinsidetest.cpp:(.text+0x100): undefined reference to `RInside::RInside(int, char const* const*, bool, bool, bool)
4) Применение make к файлу make, который уже находился в папке
make -f Makefile
ошибка (после изменения R_LIBS_USER
на
R_LIBS_USER := "/home/manuel/R/x86_64-pc-linux-gnu-library/3.4"
была:
fatal error: RInside.h: No such file or directory
compilation terminated.
До сих пор я читал более общие вопросы о включении заголовков в C ++ и пару вопросов конкретно оВнутри, на некоторые из которых ответил Дирк Эддельбюттель, который написал пакет, ноt все ответы были связаны с использованием компоновщиков -L<path>/include
, которые я почти уверен, что я использую правильно.
Вот некоторые из вопросов, которые я прочитал до сих пор:
Компиляция программы RInside с g ++ в Linux Компиляция программы RInside с g ++ в Linux
Компиляция пакета Rcpp
http://lists.r -forge.r-project.org / pipermail / rcpp-devel / 2012-May / 003829.html
http://rcpp -devel.r-forge.r-project.narkive.com / A70U2nVw / problem-with-rinside-hello-world-example
Я использую Ubuntu 16.04 с версией R 3.4.4.Любая помощь будет оценена!