2012-01-31 107 views
0

我修改了phmm包中的C函數。現在我想重新編譯軟件包,但發生了以下錯誤。我該如何解決這個錯誤?在R包中編輯c函數時R CMD內部錯誤

$ cd ~/Desktop/phmmw 
$ R CMD build phmm 
* checking for file ‘phmm/DESCRIPTION’ ... OK 
* preparing ‘phmm’: 
* checking DESCRIPTION meta-information ... OK 
* cleaning src 
* installing the package to re-build vignettes 
     ----------------------------------- 
* installing *source* package ‘phmm’ ... 
** libs 
*** arch - x86_64 
gcc-4.2 -arch x86_64 -std=gnu99 -I/Library/Frameworks/R.framework/Resources/include -I/Library/Frameworks/R.framework/Resources/include/x86_64 -I/usr/local/include -fPIC -g -O2 -c arms.c -o arms.o 
make: gcc-4.2: No such file or directory 
make: *** [arms.o] Error 1 
ERROR: compilation failed for package ‘phmm’ 
* removing ‘/private/var/folders/r0/9qv15p6j59j6jtfq775k6j380000gn/T/RtmpIPgvDE/Rinst48317ea7/phmm’ 
     ----------------------------------- 
ERROR: package installation failed 
+0

它看起來像你沒有GCC 4.2版,它是後(查看一下'在/ usr/bin'的'在/ usr/bin中/ GCC-4.x')。如果你有它的地方,然後將它添加到您的$ PATH。你*可能*能夠創建一個名爲'gcc-4.2'的符號鏈接,它實際上指向了一個更高版本,並且看看該庫是否會用更新的版本進行編譯,但這不能保證。 – 2012-01-31 06:52:03

+0

@ mathematical.coffee我的xcode的版本是4.2。我怎麼能把它添加到我的$ PATH?我對C.不熟悉,感謝您的幫助。 – moli 2012-01-31 07:08:11

+0

不,不是'xcode'編譯器的版本,'gcc'。嘗試在你的命令行輸入「gcc --version」,你可能會有一個更新的。您收到的錯誤消息是無法找到版本4.2。試着輸入'which gcc-4.2'並查看可執行文件是否在任何地方。假設可執行文件是'/ usr/local/asdf/gcc/bin/gcc-4.2',要將其添加到您的$ PATH中,您需要輸入'export PATH =/usr/local/asdf/gcc/bin:$ PATH'然後再次執行你的'R CMD'。 (這只是告訴你的系統在哪裏可以找到程序'gcc-4.2')。 – 2012-01-31 07:14:11

回答

1

你R安裝過程中,用gcc配置在這樣的(次優)是,gcc-4.2命令是硬連線的。

所以,你需要

  • 要麼提供一個命令gcc-4.2,通過一個符號鏈接最常見的做從gccgcc-4.2

  • 或更改R時,想必在文件$RHOME/etc/Makeconf在那裏你需要尋找CC

  • 或通過做動態更改它CC=gcc R CMD build phmm

您可能需要修改的不僅僅是一個CC設置,可能CXXLD和更多。它可能會像刪除-4.2零件一樣簡單。

+0

謝謝。有用。 – moli 2012-02-08 20:17:31

+0

很好聽!在這種情況下,通過點擊勾號符號來「接受」正確的答案是很常見的,只有你(如問初始問題的人)能看到的那樣。 – 2012-02-08 20:47:14