Siemargl wrote:Вот 9.4к это нормально. У тебя наверное там используется printf() - это очень сложная и большая по коду функция.
Замени на puts(), или можно использовать функции из console.obj - там есть простой аналог
В случае libc.dll код конечно не там сильно уменьшится, но в случае статической линковки - да
Наверное всё - это минимальный предел бинарника для gcc5.4 (gcc4.8 давала чуть меньше)
Да printf(). Сейчас скомпилировал тот-же файл под Linux и там, исполняемый файл - 8.4k.
Siemargl wrote:если ты запускаешься с .iso образа - в нем libc.dll уже вмонтирована, в дискетном образе ее нет
она не подхватывается из текущего каталога, а только из /kolibrios/lib
и, конечно, она должна быть одной версии (практически) с libc.dll.a и dynamic.lds
Нет. Kolibri.img запускаю через GRUB2. И есть раздел(fat32) на котором есть папка kolibrios, взятая из дистра (svn6900). Папка kolibrios отображается в Eolite, как раздел диска. На том же разделе мой исп. файл в папке. Но всё равно не работает.
P.S.
Погуглил по исполняемому файлу в Linux. Гугл сообщил, что файл содержит заголовок ELF со служебной инфой, и заголовок этот давольно большой.
Там ещё понятно, почему исполняемый файл такой большой. Но по сравнению с заголовком в Kolibri - это как-то странно. По идее исп. файл Kolibri, должен быть значительно меньше, чем в Linux, а он наоборот, больше.
Да и printf() не должна быть такой большой, то ж вывод 1-й малюсенькой строчки. Чего-то неверится. Видимо, что-то лишнее туда пишется.
Ну ладно, потом буду разбираться с этим, а сейчас меня больше интересует почему мой исполняемый файл для Kolibri не запускается.