Ich habe einen C-Code, der sowohl numpy als auch R verwendet. Unter Windows kompiliert er mit MSVC zu einer .dll, die dynamisch von R geladen werden kann und alle Tests besteht. Allerdings schaffe ich es nicht, dass es mit Debian funktioniert.
Um das Problem zu untersuchen, habe ich folgendes minimalistisches Beispiel erstellt:
%Vor%Ich kann es mit kompilieren
%Vor% Dabei wurde Rdll.lib
von %R_HOME%\bin\x64\R.dll
mit erstellt
Dann kann es von R verwendet werden:
%Vor%Wenn ich es jedoch auf Debian mit kompiliere
%Vor%und importieren Sie es von R das folgende passiert:
%Vor% Es erzeugt Segmentierungsfehler, es sei denn, alles, was mit numpy zu tun hat, wird auskommentiert. Die Interaktion mit reinem Python von R scheint in Ordnung zu sein. Aber sobald import_array()
aufgerufen wird, gibt es einen segfault. Ich habe -I/usr/share/pyshared/numpy/core/include/
aus Verzweiflung hinzugefügt und es hat nichts verändert.
Schließlich, wenn ich den folgenden Code kompiliere (ähnlich dem vorherigen, aber etwas geändert)
%Vor%auf dem gleichen Debian-Rechner mit
%Vor%und rufe es mit
%Vor%es stürzt plötzlich nicht ab, funktioniert gut und produziert "Hallo, 2 Welten", wie erwartet.
Die Versionen sind: Windows: Compiler Version 19.00.23506 für x64, Python 3.4.4, numpy 1.9.3, R 3.2.0 Debian: gcc Version 4.4.5 (Ziel: x68_64-linux-gnu), Python 2.6.6, numpy 1.4.1, R 3.2.1
Was mache ich falsch?
Update: Getestet auf Ubuntu mit Python 3.2 und Python 2.7 mit gcc und clang. Das Problem besteht weiterhin.