Erstellen Sie eine DLL-dynamische Bibliothek von C in R (Windows)

8

Ich möchte eine dynamische dll-Bibliothek aus einem C-Quellcode erstellen, damit ich sie in R laden und verwenden kann. Ich verwende jetzt

%Vor%

in der Windows 7-Befehlszeile. Aber nichts ist passiert. Es gibt keine Fehlermeldung, aber keine DLL-Datei wurde erstellt.

Was stimmt nicht mit dem, was ich getan habe? Danke.

    
Patrick Li 13.04.2013, 20:48
quelle

2 Antworten

7

Es tut mir leid, wenn meine Frage nicht klar ist. Aber ich habe herausgefunden, wie man Dinge zum Laufen bringt und mögliche Fehler macht. Hoffentlich wird es für jemanden nützlich sein. Hier sind die Schritte:

  1. Installiere R (die neueste Version ist 3.0.0). Stellen Sie sicher, dass Sie den Ordner R bin zu PATH
  2. hinzufügen
  3. Installieren Sie die neueste Version von Rtools Hier . Stellen Sie sicher, dass "c: \ Rtools \ bin; c: \ Rtools \ gcc-4.6.3 \ bin" hinzugefügt wird. zu PATH
  4. Schreiben Sie Ihren C-Code, gespeichert in foo.c
  5. Geben Sie im Windows-Befehlsfenster

    ein

    R CMD SHLIB foo.c

Dann sollten Sie eine foo.dll-Datei haben, dann können Sie es in R aufrufen. Beachten Sie, dass die foo.dll, die unter 64Bits R erstellt wurde, nur in 64Bits R geladen werden kann. Wenn Sie versuchen, 32Bits R zu laden, erhalten Sie Fehlermeldungen.

    
Patrick Li 13.04.2013, 23:20
quelle
2

Was genau meinst du mit "nichts ist passiert"? Ist R auf deinem Weg?

Was zeigt R --version ? Wie wäre es mit R CMD config CC und R CMD config CFLAGS ?

Schließlich, wenn Sie Rcpp installiert hatten (und Ihre Toolchain war korrekt, einschließlich PATH-Einstellungen und den ganzen Rest), könnten Sie Dinge on the fly a la tun

%Vor%

Hier haben wir cppFunction() (und eine Menge Tricks in Rcpp) zum Kompilieren, Verknüpfen und Laden verwendet eine einfache (und ziemlich nutzlose ...) C (++) Funktion, die eine Quadratwurzel nimmt.

    
Dirk Eddelbuettel 13.04.2013 21:46
quelle

Tags und Links