Co robi opcja -lm
w g ++ i kiedy jest potrzebna?Co robi opcja -lm w g ++?
Czy istnieje pełny opis opcji g ++?
Co robi opcja -lm
w g ++ i kiedy jest potrzebna?Co robi opcja -lm w g ++?
Czy istnieje pełny opis opcji g ++?
To jest opcja łącznika. Informuje on linker o połączeniu z (-l
) biblioteką m
(libm.so/dll). To biblioteka matematyki. Często potrzebujesz tego, jeśli jesteś #include <math.h>
.
opcja nie robi nic dla g++
: odnosząc się do tej odpowiedzi https://stackoverflow.com/a/1033940/1143274libstdc++
wymaga libm
, więc będzie zawsze być połączone g++
.
Jednak istnieje też jakiś rodzaj automatycznego zachowania linkami gcc
, badane na tym wątku http://www.linuxforums.org/forum/programming-scripting/125526-c-gcc-math-h-lm.html które nie wydają się znaleźć odpowiedź na to, gdzie to pochodzi i który dotyczy to bibliotek ...
Istnieje pełna lista w dokumentacji GCC (man gcc). – Mat
Powielenie [sqrt z math.h powoduje błąd kompilacji] (http://stackoverflow.com/questions/1711915/sqrt-from-math-h-causes-compile-error). Również związane z [gcc: dlaczego flaga -lm jest potrzebna do połączenia biblioteki matematycznej?] (Http://stackoverflow.com/questions/4606301/gcc-why-the-lm-flag-is-ededed-to-link -math-library) – Abhijit
możliwy duplikat "Dlaczego dostaję" "niezdefiniowane odwołanie do" sqrt "" Błąd, nawet jeśli dołączam nagłówek math.h? "(http://stackoverflow.com/questions/10409032/ why-im-getting-undefined-reference-to-sqrt-error-even-though-i-include-ma) –