WindowsでCライブラリのラッパー(gslを使用する)であるRパッケージをビルドしようとしています。必要に応じてLinuxに移行することができます。 Cライブラリのmakeコマンドは、Makevars.inに入れてください。 RstudioのRcppスケルトン機能を使ってパッケージを作成しました。私はRtools 3.3をインストールし、R 3.3.1を使用しました。Rcpp使用時の未定義参照
そして、RcppとRcppGSLをDESCRIPTIONのLinkingToフィールドに含めました。私はまだ
c:/Rtools/mingw_64/bin/g++ -shared -s -static-libgcc -o RGraphM.dll tmp.def graphmatch_rcpp.o RcppExports.o -L../inst -lgraphm -LC:/tools/gsl/lib/x64 -lgsl -lgslcblas -Ld:/Compiler/gcc-4.9.3/local330/lib/x64 -Ld:/Compiler/gcc-4.9.3/local330/lib -LC:/PROGRA~1/R/R-33~1.1/bin/x64 -lR
#cd graphm && /usr/bin/make
c:/Rtools/mingw_64/bin/g++ -O2 -Wall -mtune=core2 graphmatch_rcpp.o RcppExports.o ../inst/libgraphm.a -L../inst -lgraphm -LC:/tools/gsl/lib/x64 -lgsl -lgslcblas
graphmatch_rcpp.o: In function `PreserveStorage':
C:/Users/sadali/Documents/R/win-library/3.3/Rcpp/include/Rcpp/storage/PreserveStorage.h:10: undefined reference to `__imp_R_NilValue'
graphmatch_rcpp.o: In function `Vector':
C:/Users/sadali/Documents/R/win-library/3.3/Rcpp/include/Rcpp/vector/Vector.h:58: undefined reference to `Rf_allocVector'
graphmatch_rcpp.o: In function `Rcpp_ReplaceObject':
を次のようにエラーの数である。この(私の目で)同様の質問への答えは適用できない Undefined reference errors when including Rcpp.hであるように思わ
$(CXX) $(CXXFLAGS) $(OBJECTS) ../inst/libgraphm.a $(PKG_LIBS)
makeコマンドのために未定義の参照のエラーを取得しています 私はLinkingToを使用していて、Rパッケージを作成しようとしています
編集:最初の回答として、私は次のMakevars.winでRcppZigguratを構築しようとしました:
PKG_CPPFLAGS = -I. -I../inst/include -IC:/tools/gsl/include
## Use the R_HOME indirection to support installations of multiple R version
PKG_LIBS = $(LDFLAGS) -L../inst -L$(LIB_GSL)/lib/x64 $(shell "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" -e "RcppGSL:::LdFlags()")
これらのエラーが発生しています。
ziggurat.o:ziggurat.cpp:(.text+0x86): undefined reference to `gsl_rng_free'
ziggurat.o:ziggurat.cpp:(.text+0xa6): undefined reference to `gsl_rng_free'
ziggurat.o:ziggurat.cpp:(.text+0xc6): undefined reference to `gsl_rng_free'
ziggurat.o:ziggurat.cpp:(.text+0x1254): undefined reference to `gsl_rng_set'
'graphmatch_rcpp.cpp'の最初の顕著な行は便利ですが、[this](http://stackoverflow.com/questions/8061254/calling-r-function-from-c-on-windows)はあなたの問題 – hrbrmstr