2016-08-24 4 views
-1

Я новичок в Rcpp. Я ищу помощь по следующей проблеме. Кажется, что RcppArmadillo не работает. Может ли кто-нибудь дать мне несколько предложений? Большое спасибо!undefined ссылка на RcppArmadillo

г ++ -m64 -I "D: /R/R-32~1.5/include" -DNDEBUG -I "D: /R/R-3.2.5/library/Rcpp/include" -I» D: /R/R-3.2.5/library/RcppArmadillo/include "-I" D: /R/R-3.2.5/library/RcppProgress/include "-I" D:/R/Rcode/Replicating/src "-I" D:/R/Rcode/Replicating/inst/include "-I" d:/RCompile/r-compiling/local/local323/include "-O2 -Wall -mtune = core2 -c test.cpp -o test.o

В файле включены в D: /R/R-3.2.5/library/RcppProgress/include/progress.hpp: 13: 0, от test.cpp: 7: D:/R/R-3.2.5/library/RcppProgress/include/interruptable_progress_monitor.hpp: 101: 0: предупреждение: игнорирование #pragma omp критическое [-Wunknown-pragmas]

D: /R/R-3.2.5/library/RcppProgress/include/interruptable_progress_monitor.hpp: 147: 0: предупреждение: игнорирование #pragma OMP атомный [-Wunknown-псевдокомментарии]

D:/R/R-3.2.5/library/RcppProgress/include/interruptable_progress_monitor.hpp: 153: 0: предупреждение: игнорирование #pragma omp критическое [-Wunknown-pragmas]

g ++ -m64 -shared -s -static-libgcc -o sourceCpp_7.dll tmp.def test.o -LD: /R/R-32~1.5/bin/x64 -lRlapack -LD: /R/R-32~1.5/bin/x64 -lRblas -lgfortran -Ld:/RCompile/r-компиляция/local/local323/lib/x64 -Ld:/RCompile/r-компиляция/local/local323/lib -LD: /R/R-32~1.5/bin/x64 -lR

test .o:. test.cpp :(текст + 0x61ee): неопределенная ссылка на `mvrnormArma (ArmA :: Col, ARMA :: Мат, Int)»

test.o:. test.cpp :(текст + 0x6d0e): неопределенная ссылка на `mvrnormArma (ArmA :: Col, ARMA :: Мат, Int)»

collect2: л.д. возвращается 1 выход статус

+1

Ну, вы ** определенно ** должны включать ваш код, но я предполагаю, что вы не поставили '// [[Rcpp :: depend (RcppArmadillo)]]' в исходный файл. – nrussell

+1

@nrussell: Это ошибка ссылки, а не ошибка компиляции. См. Мой ответ ниже. –

ответ

3

Это выглядит как faily общей и очевидной ошибки наличия забыл обновить src/Makefile, а здесь src/Makefile.win, для содержания

PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) 

, так что требуется Функциональность LAPACK и BLAS.

Для чего это необходимо, это также добавляется automagically для вас, если вы решите начать с RcppArmadillo.package.skeleton(), как это обычно рекомендуется.

+1

Спасибо за прекрасный ответ. Извините за мою тупую ошибку – Captain