2013-10-23 25 views
4

我只是想讓Rcpp在我的Mac上運行,但我掙扎。我已經安裝了命令行工具。我已經安裝了Rcpp和內聯包。我嘗試在R中運行以下腳本,並獲取以下錯誤。與Xcode 5.0和OSX 10.8.5和R 3.0.2 Rcpp錯誤

fx <- cxxfunction(signature(x = "numeric"), 

    'NumericVector xx(x); 

    return wrap(std::accumulate(xx.begin(), xx.end(), 0.0));', 

    plugin = "Rcpp",verbose=TRUE) 


Error in compileCode(f, code, language = language, verbose = verbose) : 
    Compilation ERROR, function(s)/method(s) not created! /bin/sh: llvm-g++-4.2: command not found 
make: *** [file2e731b1c0ff8.o] Error 127 

我意識到這與發佈的問題非常相似。但是,如果能夠找到makevars文件的更多細節,我會很感激。

謝謝。

+0

同樣的問題已經被詢問和回答了。 –

回答

5

正如我alluded to in this previous answer,您必須更正由CRAN提供的R二進制這是與的XCode仍然有G ++內置的值硬編碼 - 基於編譯。你有(至少)三種選擇:

  1. 編輯etc/Makeconf(下面的r安裝目錄)直接糾正CCCXXclangclang++

  2. 或者,也可以類似地創建或編輯~/.R/Makevars

  3. 使用這些加載創建環境變量CCCXX

長期和短期的它是CCCXX具有來自R的編譯時硬編碼值,其不再對應系統上的值(使用的XCode 5)。最終,R將迎頭趕上,這種調整將是不必要的。

R安裝和管理手冊有更多關於哪些變量和您應該在給定體系結構上使用哪些值的說法。

+0

謝謝,我選擇了選項1,似乎一切都好。現在開始學習使用Rcpp! – Scott

+0

可以肯定的是 - 也可以回到rcpp-devel的列表中尋找問題。哦,請隨時通過點擊刻度符號來「接受」答案。 –

3

由於g ++不再包含在Xcode 5中,您將不得不將指針重新指向clang。 根據@Romain Francois的答案Error when with Xcode 5.0 and Rcpp (Command Line Tools ARE installed),您將不得不在〜/ .R /目錄下創建您自己的Makevars文件。 Makevars的示例內容將包括:

CC=clang 
CXX=clang++ 
CFLAGS="-mtune=native -g -O2 -Wall -pedantic -Wconversion" 
CXXFLAGS="-mtune=native -g -O2 -Wall -pedantic -Wconversion" 
FLIBS=-lgfortran 
+1

只需詳細說明,默認情況下目錄和文件都不存在;你必須自己創造。 –

+0

Xcode 5真的搞砸了這個 –