インターネット上にはいくつかの解決策が存在しますが、現在直面している問題に適した解決策は見つかりませんでした (ただし、私は単に愚かすぎるかもしれません)。
Makefile によってコンパイルされた共有オブジェクトを多用する R パッケージを構築しようとしています (はい、悪い習慣ですが、Makevars ファイルは、C と Fortran コードを 1 つの共有オブジェクトにコンパイルするように指示することはできません)。 ) パッケージのsrc
ディレクトリ内のコードから。その .so をどこにコンパイルしても ( src
,libs
およびパッケージのベース フォルダーを試しました)、どのように名前を付けても (上記のソリューションの 1 つでは、含まれているパッケージのように名前を付ける必要があると述べられています)、次のようにR CMD check
終了します。
** testing if installed package can be loaded
Error in library.dynam(lib, package, package.lib) :
shared object ‘SoMNibEN.R.so’ not found
useDynLib(SoMNibEN.R)
私のNAMESPACEファイルの指示によるものです(SoMNibEN.R
私のパッケージの名前はどこにありますが、元の名前でも機能しませんでした)
私の仮定は、そのuseDynLib()
コマンドを間違って使用しているか、Makefile で何か間違ったことをしているということです (ただし、コンパイルはうまく機能し、共有オブジェクトはプロジェクト フォルダーに作成されますが、それがコピーされるかどうかはわかりません)。パッケージのインストール ディレクトリに正常に追加されます)。
だから、私がここで間違っているかもしれないことを誰かが知っているなら、私に知らせてください!