Wie behebe ich einen nicht definierten Verweis auf _imp __ *?

10

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

an %Vor%

gibt

%Vor%     
Jason Gross 07.04.2012, 23:28
quelle

1 Antwort

6

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.

    
Jason Gross 08.04.2012, 00:07
quelle

Tags und Links