2016-05-12 11 views
1

作業関連のデータ分析のためにarbintoolsというRパッケージを作成し、Githubに入れました。私はそれを書いて、しばらくの間、私のMacでそれを使っています。今日、私は間違って行くように見えるいくつかのRcpp機能をコンパイルに関連したWindows 7のラップトップと何かにdev-1 branchをインストールしようとした:* .o:Windows 7でファイル形式が認識されない

devtools::install_github("mjlacey/arbintools", ref = "dev1") 

私はこの取得:

Downloading GitHub repo mjlacey/[email protected] 
from URL https://api.github.com/repos/mjlacey/arbintools/zipball/dev1 
Installing arbintools 
"C:/PROGRA~1/R/R-33~1.0/bin/x64/R" --no-site-file --no-environ --no-save \ 
    --no-restore --quiet CMD INSTALL \ 
    "C:/Users/matla332.USER/AppData/Local/Temp/Rtmp8WWkKC/devtools124c45026af1/mjlacey-arbintools-41dc363" \ 
    --library="C:/Users/matla332.USER/Documents/R/win-library/3.3" \ 
    --install-tests 

* installing *source* package 'arbintools' ... 
** libs 

*** arch - i386 
C:\Rtools\mingw_32\bin\nm.exe: RcppExports.o: File format not recognized 
C:\Rtools\mingw_32\bin\nm.exe: Rcpp_functions.o: File format not recognized 
c:/Rtools/mingw_32/bin/g++ -shared -s -static-libgcc -o arbintools.dll tmp.def RcppExports.o Rcpp_functions.o -Ld:/Compiler/gcc-4.9.3/local330/lib/i386 -Ld:/Compiler/gcc-4.9.3/local330/lib -LC:/PROGRA~1/R/R-33~1.0/bin/i386 -lR 
RcppExports.o: file not recognized: File format not recognized 
collect2.exe: error: ld returned 1 exit status 
no DLL was created 
ERROR: compilation failed for package 'arbintools' 
* removing 'C:/Users/matla332.USER/Documents/R/win-library/3.3/arbintools' 
* restoring previous 'C:/Users/matla332.USER/Documents/R/win-library/3.3/arbintools' 
Error: Command failed (1) 

は、いくつかのコンパイルを必要とする他のパッケージをインストールします(dplyrのように)正常に動作しました。また、MacのRを同じバージョン(3.3.0)にアップデートし、パッケージを正常に再インストールしました。これは動作しないWindows PC上にあります。これは私の理解を超えています。もし誰かが提案や解決策を持っていれば、私はとても感謝しています。

答えて

7

問題は.so.oのファイルは同じアーキテクチャでのみ実行可能です。 OS Xは64ビット、Windowsは32ビット(mingw_32)です。 dev-1/srcからそれらを削除してください、そして、あなたは行かなくてはなりません。これらのファイルは、コンパイラを使用した結果、パッケージインストール時に自動的にビルドされます。

、それらを除去した後、次のように.gitignoreファイルを作成しよう:

src/*.o 
src/*.so 
src/*.dll 

これは、ステージングのために選択できないOS固有のファイルを作成し、今度は、コミットされます。

おおよその目安として、.cppまたは.hファイルはに、Rcppを使用してください。

+4

この非互換性でないとしても、コンパイルされたファイルは 'src'フォルダに属しません(バージョン管理下にもありませんが、devtoolsはソースバージョン管理と配布を統合します。それのために作られる)。 –

+0

"devtoolsはソースバージョンの制御と配布を統合します"のUpvote。 –

関連する問題