Alle Bibliotheken wie stdio.h
und stdlib.h
haben ihre Implementierung in libc.so
oder libc.a
und werden standardmäßig vom Linker verknüpft. Die Bibliotheken für libc.so
werden automatisch beim Kompilieren verknüpft und sind in der ausführbaren Datei enthalten.
Aber math.h
hat seine Implementierungen in libm.so
oder libm.a
, die separat von libc.so
sind. Es wird nicht standardmäßig verknüpft und Sie müssen es manuell beim Kompilieren Ihres Programms in GCC verknüpfen, indem Sie das -lm Flag verwenden.
Das GNU GCC-Team hat es so konzipiert, dass es sich von den anderen Header-Dateien unterscheidet, während die anderen Header-Dateien standardmäßig verknüpft werden, jedoch nicht die math.h-Datei.
Hier lesen Sie den Abschnitt 14.3, Sie können alles lesen, wenn Sie möchten: Grund warum math.h verknüpft werden muss
Schauen Sie sich diesen Artikel an: Warum müssen wir math.h in GCC verknüpfen?
Schauen Sie sich die Verwendung an:
Verwendung der Bibliothek
0 Stimmen
Verwandt: GCC -lm -lz -lrt-Optionen - wovon handeln sie?