[code=Cj
@nvidia ~/2015_WORK/HISTORY.nvidia/04/06 $ gcc -Wall -lm ctst.c -o ctst
/tmp/ccDNNiCu.o: In function `main':
ctst.c:(.text+0x1a): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status
[/code]
Что означает, что линкер ld не может найти и связать код со стандартной математической библиотекой libm.so.
Хотя если вы проверите, то библиотека на месте, и все условия её поиска в системе соблюдены.
И так будет со всеми библиотеками C (кроме стандартной libc.so)!
Что и почему так происходит, кто интересуется, найдёте здесь... - gcc в Mint собран с опцией ... экономить до 5% на сборке
Такое уже было ... в AltLinux времени 2008г. и др.
Вопрос не в том что происходит, а в том как лечить: набирайте в командной строке имя библиотеки после имени файла, из которого она вызывается:
Код C:
Или так:
olej@nvidia ~/2015_WORK/HISTORY.nvidia/04/06 $ gcc -Wall ctst.c -o ctst -lm olej@nvidia ~/2015_WORK/HISTORY.nvidia/04/06 $ ldd ctst linux-gate.so.1 => (0xb7738000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb76d7000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7529000) /lib/ld-linux.so.2 (0xb7739000) olej@nvidia ~/2015_WORK/HISTORY.nvidia/04/06 $ ./ctst 3.000000
Код С:
Очень неприятная особенность.
olej@nvidia ~/2015_WORK/HISTORY.nvidia/04/06 $ gcc -Wall ctst.c -lm -o ctst