Mam problemy z plikiem nagłówkowym math.h i kiedy używam funkcji pierwiastka kwadratowego jak w sqrt(d). Ale mój kompilator tego nie obsługuje. Proszę o poinformowanie mnie o tym problemie.
Chociaż lubimy programować pytania - pytanie musi dotyczyć Ubuntu - czy możesz szczegółowo wyjaśnić, na czym polega problem - przykłady itp.?
fossfreedom
to jest jak sqrt ((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1)) ... mój kompilator nie obsługuje tego polecenia
Shreya
1
odpowiedz, edytując swoje pytanie. Podaj przykłady kodu, jak się kompilujesz, wersję Ubuntu, wersję kompilatora, czy próbowałeś to zrobić na innym kompilatorze / dystrybucji. Co się stanie itp.?
fossfreedom
1
@shreya Pytania dotyczące problemów z napisanym kodem muszą opisywać konkretny problem - i zawierać prawidłowy kod do jego odtworzenia - w samym pytaniu. Zobacz SSCCE.org orientacyjna.
Braiam
4
Naprawdę nie sądzę, że to nie na temat. W wielu innych systemach operacyjnych, takich jak Windows, nie jest konieczne przekazywanie specjalnej opcji linkera do korzystania z biblioteki matematycznej w programach C. Nawet w niektórych systemach operacyjnych typu Unix standardowa implementacja biblioteki C tego nie wymaga. Jest to problem, z którym zmaga się wielu użytkowników po przejściu na systemy GNU / Linux, takie jak Ubuntu. Chciałbym, żeby pytanie było lepiej napisane, aby zawierało konkretny błąd - jeśli w końcu rozważymy ten temat, być może powinniśmy go edytować - ale to nie jest ogólne pytanie dotyczące programowania w C, jest to pytanie, jak używać gccw Ubuntu .
Eliah Kagan
Odpowiedzi:
25
Dołącz -lmna końcu gccpolecenia.
We wszystkich najnowszych wersjach GCC na systemach GNU / Linux, takich jak Ubuntu, kiedy korzystasz z biblioteki matematycznej, musisz jawnie do niej linkować. Nie jest automatycznie łączony z resztą standardowej biblioteki C.
Jeśli zamierzasz skompilować program C z biblioteką math.h w LINUX za pomocą GCC lub G ++, będziesz musiał użyć opcji –lm po komendzie kompilacji.
gcc xyz.c -o xyz -lm
Tutaj,
gcc to polecenie kompilatora (nazwa kompilatora) xyz.c to nazwa pliku źródłowego. -o jest opcją określającą plik wyjściowy. xyz to nazwa pliku wyjściowego. -lm jest opcją łączenia ponownie biblioteki matematycznej ( libm ).
gcc
w Ubuntu .Odpowiedzi:
Dołącz
-lm
na końcugcc
polecenia.We wszystkich najnowszych wersjach GCC na systemach GNU / Linux, takich jak Ubuntu, kiedy korzystasz z biblioteki matematycznej, musisz jawnie do niej linkować. Nie jest automatycznie łączony z resztą standardowej biblioteki C.
Jeśli kompilujesz się w wierszu poleceń za pomocą polecenia
gcc
lubg++
, możesz to zrobić, umieszczając-lm
na końcu polecenia .Na przykład:
gcc -o foo foo.c -lm
źródło
Jeśli zamierzasz skompilować program C z biblioteką math.h w LINUX za pomocą GCC lub G ++, będziesz musiał użyć opcji –lm po komendzie kompilacji.
Tutaj,
gcc to polecenie kompilatora (nazwa kompilatora)
xyz.c to nazwa pliku źródłowego.
-o jest opcją określającą plik wyjściowy.
xyz to nazwa pliku wyjściowego.
-lm jest opcją łączenia ponownie biblioteki matematycznej ( libm ).
więcej szczegółów tutaj znajduje się link zawierający pełny artykuł na jego temat.
Kompilowanie programu C z math.h w systemie Linux.
źródło