Warum ist die Reihenfolge der Option '-l' in gcc wichtig?

Ich versuche, ein Programm zu kompilieren, das verwendetudis86 Bibliothek. Eigentlich verwende ich ein Beispielprogramm aus demBenutzerhandbuch der Bibliothek. Beim Kompilieren tritt jedoch ein Fehler auf. Die Fehler, die ich erhalte, sind:

example.c:(.text+0x7): undefined reference to 'ud_init'
example.c:(.text+0x7): undefined reference to 'ud_set_input_file'
.
.
example.c:(.text+0x7): undefined reference to 'ud_insn_asm'

Der Befehl, den ich benutze, ist:

$ gcc -ludis86 example.c -o example 

wie in der Bedienungsanleitung angegeben.

Natürlich kann der Linker die libudis Bibliothek nicht verlinken. Aber wenn ich meinen Befehl ändere zu:

$ gcc example.c -ludis86 -o example 

Es fängt an zu arbeiten. Kann also bitte jemand erklären, wo das Problem mit dem ersten Befehl liegt?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage