私はNLoptライブラリ(http://ab-initio.mit.edu/wiki/index.php/NLopt)へのリンクRcppパッケージをビルドするといくつかの助けが必要と思います。Rcpp(NLopt)
私は、Windows上だとRStudioの「&リロードを構築する」を使用。
Iましパッケージの\ srcフォルダに次のファイル:SRC \
-
- Makevars.in
- Makevars.win
- RcppExports.cpp
- nlopt
- の.h nlopt.hpp
- libnlopt.lib
- libnlopt.def
- libnlopt.dll
- libnlopt.a私はNLOptの.libファイル(MinGWのを使用して構築された)とdllファイルをコピーした
Rがそれ自身をコンパイルすることを希望する\ srcフォルダ。それは、しかし、と私はライブラリにリンクしようMakevarsファイルを、追加しましたその理由のために、ケースではないようです。にインストール
:
RStudioから実行しているとき、私は、私が思う、NLOPライブラリに(参照:「未定義参照」)をリンクに問題があると言われます、次のエラーメッセージが表示されますライブラリ 'C:/Users/g49128/Documents/R/win-library/3.2'
インストールソースパッケージ 'NewPackage' ... ** libsの
グラム++ -m64 -shared -s - 静電気のlibgcc -o NewPackage.dll tmp.def RcppExports .o Rcpp_project_test.o -Lc:/Temp/R/Rcpp/NewPackage/src/libnlopt.a -Lc:/アプリケーション/ extsoft/libに/ x64の-Lc:/アプリケーション/ extsoft/libに-LC:/ PROGRA〜1/R/R-32〜1.2/binに/ x64の-lR Rcpp_project_test.o:。Rcpp_project_test.cpp :(テキスト+ 0x73c): `__imp_nlopt_createに未定義の参照"
だから私はそのIヘイブン容疑者彼らにはあまりよく習熟していない、「Makevars」は正しいものを手に入れました。
いくつかのCRANパッケージをコンサルティングから、特にnloptrに、両方のMakevarsファイルの内容に私の現在の最良の推測では、次のとおりです。
NLOPT_HOME = C:/温度/ R/Rcpp/NewPackage/srcに。
KG_CFLAGS = -I "$(NLOPT_HOME)"
PKG_LIBS = -L "$(NLOPT_HOME)/libnlopt.a" 'libnlopt.a' のライブラリと環境です
変数 'NLOPT_HOME'はライブラリへのパスを保持します。
私がここで何が欠けているのか教えてもらえますか?どんな助けでも大歓迎です、ありがとうございます。
私はMakevarsで '-l'と' -L'を反転したと思います( '-L'はlibファイル用です) – purplepsycho
-lと-Lを反転してくれてありがとうlibのパスの前に-lと-Lのどちらも持たないものとして)トリックをしているようには見えません。この場合、コンパイラは-lc:/Temp/R/Rcpp/NewPackage/src/libnlopt.aを見つけることができないと不平を言う。 –