gcc neu installierten Bibliotheken (libexpat1-dev) nicht anerkannt, im aktuellen terminal (debian)
Hab ich verbrachte ziemlich viel Zeit mit dem Versuch zu bekommen, ein expat basiert Beispielprogramm zu kompilieren.
War ich erhalte folgende Fehlermeldung, wenn ich versuchte, Sie zu kompilieren
gcc -Wall -lexpat line.c -o blah
line.c: In function ‘main’:
line.c:99:8: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘XML_Size’ [-Wformat]
/tmp/ccUa3vfD.o: In function `printcurrent':
line.c:(.text+0x42): undefined reference to `XML_SetDefaultHandler'
line.c:(.text+0x4d): undefined reference to `XML_DefaultCurrent'
line.c:(.text+0x60): undefined reference to `XML_SetDefaultHandler'
/tmp/ccUa3vfD.o: In function `main':
line.c:(.text+0x162): undefined reference to `XML_ParserCreate'
line.c:(.text+0x1ad): undefined reference to `XML_UseParserAsHandlerArg'
line.c:(.text+0x1c9): undefined reference to `XML_SetElementHandler'
line.c:(.text+0x1dd): undefined reference to `XML_SetCharacterDataHandler'
line.c:(.text+0x1f1): undefined reference to `XML_SetProcessingInstructionHandler'
line.c:(.text+0x2b2): undefined reference to `XML_Parse'
line.c:(.text+0x2c2): undefined reference to `XML_GetErrorCode'
line.c:(.text+0x2ca): undefined reference to `XML_ErrorString'
line.c:(.text+0x2d8): undefined reference to `XML_GetCurrentLineNumber'
collect2: ld returned 1 exit status
Hatte ich bereits die folgenden Befehle ausführen:
sudo apt-get install expat libexpat1 libexpat1-dev libxmltok1-dev
Also ich Durcheinander herum für Alter, versuchen, um die Fehlermeldung Weg zu gehen, so konnte ich kompilieren diese (einfache) kleines Programm, aber ohne Erfolg.
Schließlich, aus reiner Zufälligkeit, beschloss ich, zu wechseln, um ein Virtuelles Terminal.
Lief ich genau den gleichen Befehl, dieses mal hat es geklappt ohne problem.
Kann mir jemand sagen warum das so ist? Gibt es etwas, was ich brauche zu laufen, um um die Bibliothek zu aktualisieren Pfade?
- versuchen Sie, geben Sie die linker-flag nach der Datei name enthält Haupt-wie : gcc-Zeile.c -lexpat
Du musst angemeldet sein, um einen Kommentar abzugeben.
Linker-line (d.h. die flags, die Sie geben, mit
-l
und Ihre input-Datei-Namen) sind Reihenfolge-abhängig. Bibliotheken werden nur verwendet, um zu definieren, Funktionen verwendet, die auf Ihrer linken Seite, aber nicht auf Ihr Recht. Verwendung:Sehen, die Frage Bibliothek verknüpft ist, aber Referenz ist undefiniert für weitere Informationen.