Ich habe eine Bibliothek genommen, die als binäre Bibliothek (.a) und Header verteilt ist, etwas C ++ Code dagegen geschrieben hat und die Ergebnisse in ein Python-Modul einbinden will.
Ich habe das hier gemacht.
Das Problem ist, dass beim Importieren dieses Moduls unter Mac OSX (ich habe 10.5 und 10.6 versucht), der folgende Fehler angezeigt wird:
%Vor% Das sieht so aus, als ob die im Carbon-Framework definierten Symbole nicht korrekt aufgelöst werden, aber ich bin nicht sicher, was ich dagegen tun soll. Ich liefere -framework Carbon
auf distutil.core.Extension
's extra_link_args
Parameter, also bin ich mir nicht sicher was ich sonst tun sollte.
Jede Hilfe wäre sehr willkommen.
Aktualisierung:
Die von setup.py generierte Kompilierzeile sieht folgendermaßen aus:
%Vor%Die Linker-Zeile sieht so aus:
%Vor% otool
meldet:
Update 2 :
Unter MacOS 10.5 löst das Ändern der dlopen-Flags vom Standardwert RTLD_NOW
auf RTLD_LAZY
das Problem. Dies funktioniert jedoch nicht unter Mac OS 10.6.
In 10.6 ermöglicht die folgende Sequenz die ordnungsgemäße Ausführung der Bibliothek, obwohl ich mir nicht sicher bin, warum:
Ich bin immer noch auf der Suche nach einer guten Antwort darauf, wie dies funktioniert. Danke!
Du wirst dich selbst treten, wenn du die Antwort darauf siehst! Versuchen Sie, dies zu ändern:
%Vor%dazu:
%Vor%Nachdem ich diese Änderung vorgenommen hatte, war ich in der Lage, einen sauberen Build zu erstellen und das Modul sofort zu importieren:)
Ich habe eine Bibliothek genommen, die als binäre Bibliothek (.a) und Header verteilt ist, etwas C ++ Code dagegen geschrieben hat und die Ergebnisse in ein Python-Modul einbinden will.
Ich habe das hier gemacht.
Das Problem ist, dass beim Importieren dieses Moduls unter Mac OSX (ich habe 10.5 und 10.6 versucht), der folgende Fehler angezeigt wird:
%Vor%Das sieht so aus, als ob die im Carbon-Framework definierten Symbole nicht korrekt aufgelöst werden, aber ich bin nicht sicher, was ich dagegen tun soll. Ich liefere %code% auf %code% 's %code% Parameter, also bin ich mir nicht sicher was ich sonst tun sollte.
Jede Hilfe wäre sehr willkommen.
Aktualisierung:
Die von setup.py generierte Kompilierzeile sieht folgendermaßen aus:
%Vor%Die Linker-Zeile sieht so aus:
%Vor%%code% meldet:
%Vor%Update 2 : Unter MacOS 10.5 löst das Ändern der dlopen-Flags vom Standardwert %code% auf %code% das Problem. Dies funktioniert jedoch nicht unter Mac OS 10.6.
In 10.6 ermöglicht die folgende Sequenz die ordnungsgemäße Ausführung der Bibliothek, obwohl ich mir nicht sicher bin, warum:
Ich bin immer noch auf der Suche nach einer guten Antwort darauf, wie dies funktioniert. Danke!
Tags und Links python linker dlopen setup.py python-c-extension