ld: warning: cannot find entry symbol _start; defaulting to 0000000008048074
test.o: In function `main':
test.c:(.text+0x42): undefined reference to `sqrt'
test.c:(.text+0x67): undefined reference to `printf'
Заголовочные файлы в stdio.h и math.h в системе присутствуют в /usr/include. GCC версии 4.1.2. LD версии 2.17.50.0.17.20070615. Почему компоновщик так странно работает???
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Он работает правильно. Если идет компоновка вручную (хотя зачем, для таких-то простых программ?), то следует указывать компоновщику все линкуемые файлы. Включая стандартную библиотеку C. Ведь компоновщик не знает, на каком языке был написан исходный файл (в объектном файле этой инфы уже нет), и не может предположить, стандартную библиотеку какого языка использовать.