Ich versuche etwas zu kompilieren, das von gtkspell abhängt Kommt auf enchant an, unter MinGW. Ich bekomme Fehler wie %Code% Ich vermute, das liegt entweder daran, dass ich versuche zu verlinken gegen eine {statische, dynamische} Bibliothek, wenn ich gegen die verlinken sollte andere, oder weil es nur einen Unterstrich vor dem Imp gibt und es sollte zwei geben; Ich bekomme
%Vor%und
%Vor%Das Internet (http://lists.freedesktop.org/archives/gstreamer-devel/2007-January/013975.html) schlägt vor, dass das Impangment von
kommt %Vor%obwohl Verzauberung scheint zu verwenden
%Vor%, und kommentieren die relevanten Zeilen in enchant.h macht gtkspell.c
Anfrage gtkspell/gtkspell.c:757: undefined reference to '_imp__enchant_broker_init'
anstatt enchant_broker_init
, aber
ändert nicht die Symbole, die in libenchant angezeigt werden. Gibt es einen Weg
gcc die Namen nicht zu vermasseln, oder hat irgendjemand Ideen darüber
könnte schief gehen / wie kann ich es beheben?
Hier ist ein minimales Beispiel, das das Problem auf meinem System reproduziert:
Wenn ich eine Datei enchantest1.c mit Inhalt habe
%Vor%und eine Datei enchantest2.c mit Inhalt
%Vor%dann
%Vor% gibt _imp__enchant_broker_init
aber
gibt
%Vor% Um mein minimales Beispiel zu beheben, fügen Sie --libs
nach --cflags
; gcc konnte die Bibliothek nicht finden, mit der verlinkt werden kann.
Ich konnte das Problem beheben, mit dem ich den komplizierteren Code, den ich ursprünglich kompilieren wollte (Gummi (http://dev.midnightcoding.org/projects/gummi)), durchreichen konnte, indem ich% co_de übergab % zum Skript configure; Das Problem scheint gewesen zu sein, dass die Argumente für gcc in der falschen Reihenfolge übergeben wurden, und es konnte keine Verzauberung finden, wenn es versuchte, gtkspell zu verknüpfen.