2012-03-23 5 views
3

Ich mache ein R-Paket auf Datenflüsse in Netzwerken. Für Geschwindigkeit ist ein Teil des Codes in C++ geschrieben und mit meiner eigenen Implementierung von Graphalgorithmen. Ich möchte meinen Code neu schreiben, um die Boost Graph Library zu verwenden.Verknüpfen von C++ gegen Boost in einem R-Paket

Was müsste ich in die Makevars-Datei einfügen, um die Compiler/Linker-Option zu setzen, um Boost zu finden? Tut mir leid, ich bin nicht sehr gut mit Make.

Ich arbeite in einer Linux-Umgebung

Ja ich RBGL sah, aber nicht eine Make-Datei in diesem Paket

Wenn es darauf ankommt finden, ich RCPP bin mit dem R und C++ Schnittstelle Code

Antwort

3

Es ist nicht so schwer. Standardmäßig hat jeder RCPP Paket eine Standard src/Makevars die

## Use the R_HOME indirection to support installations of multiple R version 
PKG_LIBS = `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"` 

enthält, in dem die Bibliothek für RCPP sich dynamisch diese gefunden wird, nur mit der Frage, R. Sie erweitern und

-lboost_graph 

hinzufügen (und/oder vielleicht die parallelen oder mt-Varianten). Wenn Sie an einem ungewöhnlichen Ort installiert sind, fügen Sie auch -L... Flags hinzu. Dito für PKG_CFLAGS für Header-Positionen.

Das ist es. Weitere Informationen zum Erstellen von R-Paketen finden Sie im Handbuch Writing R Extensions.