Где заголовочные файлы СИ?
Forum rules
Topics in this forum are automatically closed 6 months after creation.
Topics in this forum are automatically closed 6 months after creation.
Где заголовочные файлы СИ?
Установил mint cinnamon rebecca. Хотел написать программку и не нашел стандартные заоголовочные файлы библиотеки СИ. Где их взять?
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 1 time in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
Re: Где заголовочные файлы СИ?
Через Synaptic установил пакет libc6-dev:i386 и они появились. Проблема решена
Re: Где заголовочные файлы СИ?
Проблема не решенаsunbot wrote:Через Synaptic установил пакет libc6-dev:i386 и они появились. Проблема решена
С заголовочными файлами (хэдерами) проще.
А вот что с библиотеками делать?
Например с простейшей libm.so - математических функций.
При сборке любой программы, на 3 оператора сложнее hello-world получите:
Code: Select all
olej@nvidia ~/2015_WORK/own.BOOK/ManyLan/ex.32/triangle $ gcc -Wall -L/lib/i386-linux-gnu -lm triangle.c -o triangle_c
/tmp/cc0bABfr.o: In function `perimeter':
triangle.c:(.text+0x5e): undefined reference to `cabs'
/tmp/cc0bABfr.o: In function `square':
triangle.c:(.text+0xed): undefined reference to `cabs'
triangle.c:(.text+0x102): undefined reference to `cabs'
triangle.c:(.text+0x11c): undefined reference to `atan2'
triangle.c:(.text+0x133): undefined reference to `atan2'
triangle.c:(.text+0x13e): undefined reference to `sin'
collect2: error: ld returned 1 exit status
В смысле выбора средств программирования выбор дистрибюторов Mint удивляет.
Re: Где заголовочные файлы СИ?
Коротко:Olej wrote: Например с простейшей libm.so - математических функций.
При сборке любой программы, на 3 оператора сложнее hello-world получите:Это собиралась старая программа, которая в Fedora и Debian собирается в-лёт, без всяких дополнительных установок.Code: Select all
olej@nvidia ~/2015_WORK/own.BOOK/ManyLan/ex.32/triangle $ gcc -Wall -L/lib/i386-linux-gnu -lm triangle.c -o triangle_c ...
В Mint gcc (точнее его компоновщик ld) собран с такими опциями экономии (дурацкими!), что в командной строке gcc библиотека (любая!) должна записываться позже, чем имя файла, где она используется.
Поэтому командная строка выше (допустимая во всех UNIX like OS) должна быть записана:
Code: Select all
$ gcc -Wall -L/lib/i386-linux-gnu triangle.c -o triangle_c -lm
Code: Select all
$ gcc -Wall -L/lib/i386-linux-gnu triangle.c -lm -o triangle_c
Подробнее: здесь.