Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вт окт 24, 2017 1:40 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 41 сообщение ]  На страницу Пред. 1 2 3 След.
Автор Сообщение
СообщениеДобавлено: Ср май 24, 2017 11:34 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 18, 2017 2:29 am
Сообщения: 66
Я так понял нужна была библиотека "libisl.so.10". Поискал её на просторах всемирной поутины и нашёл - "libisl.so.10.2.2". Копировал её в папку "/usr/lib/x86_64-linux-gnu" и сделал на неё ссылку "ln -s libisl.so.10.2.2 libisl.so.10" в той же папке. Опять сделал make, и о чудо, библиотеку "libisl.so.10", больше не просит. Теперь другая проблема. Не может найти заголовочный файл "stdio.h".

Вот вывод с терминала:
Код:
kos32-gcc -c -fno-ident -O2 -fomit-frame-pointer -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -I ~/Sandbox/sdk/sources/newlib/libc/include -o hello.o hello.c
hello.c:1:19: fatal error: stdio.h: No such file or directory
 #include <stdio.h>
                   ^
compilation terminated.
Makefile:25: recipe for target 'hello.o' failed
make: *** [hello.o] Error 1
Где этот файл? Почему компилятор не находит его?

_________________
The Glass is Always Half Full! :mrgreen:


Вернуться к началу
СообщениеДобавлено: Чт май 25, 2017 9:33 am 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 268
У тебя не запускается именно компилятор - ищи библиотеку libisl.so.10 для gcc 5.4

На стековерфлоу рекомендуют сходить на https://gcc.gnu.org/wiki/InstallingGCC


Вернуться к началу
СообщениеДобавлено: Чт май 25, 2017 12:49 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 18, 2017 2:29 am
Сообщения: 66
Siemargl писал(а):
У тебя не запускается именно компилятор - ищи библиотеку libisl.so.10 для gcc 5.4

На стековерфлоу рекомендуют сходить на https://gcc.gnu.org/wiki/InstallingGCC
Как раз компилятор работает.

Попробовал сделать так:
Код:
kos32-gcc -c -g -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -I ./sdk/sources/newlib/libc/include -o hello.o hello.c
и компиляция прошла успешно.

А вот линкер, линковать не хочет.
Делаю так:
Код:
kos32-ld -static -nostdlib -T ./sdk/sources/newlib/static.lds -Map=hello.map -L ./sdk/lib -o hello hello.o -lc -lgcc -lc
Вывод с терминала, такой:
Код:
kos32-ld: cannot find -lc
kos32-ld: cannot find -lc

Создаётся только файл "hello.map" и всё. Дальше не идёт. Что не хватает, непонятно. :(

_________________
The Glass is Always Half Full! :mrgreen:


Вернуться к началу
СообщениеДобавлено: Чт май 25, 2017 3:19 pm 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 268
он в путях, указанных в -L ищет библиотеку libc.a (lib- и .a дописываются автоматически)
это скомпилированная библиотека стандартных ф-ций newlib

ключик -g лишний, т.к. отладчика С под колибри нет
ну и для уменьшения бинарника потом применить к нему strip


Вернуться к началу
СообщениеДобавлено: Пт май 26, 2017 12:01 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 18, 2017 2:29 am
Сообщения: 66
Siemargl писал(а):
он в путях, указанных в -L ищет библиотеку libc.a (lib- и .a дописываются автоматически)
это скомпилированная библиотека стандартных ф-ций newlib

ключик -g лишний, т.к. отладчика С под колибри нет
ну и для уменьшения бинарника потом применить к нему strip
Понятно, но тем не менее, проблему с линкером это не решает. Видимо, это дело дохлое, поэтому перехожу на TCC. :(

_________________
The Glass is Always Half Full! :mrgreen:


Вернуться к началу
СообщениеДобавлено: Пт май 26, 2017 12:24 am 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 268
Вот, приложу чтобы далеко не бегать libc.a для статической линковки
libc.dll.a для динамической - там немного другая строка будет -T app-dynamic.lds -lgcc -lc.dll

Положить в gcc/lib.

Это для gcc 5.4


Вложения:
lib.zip [219.32 КБ]
6 скачиваний
Вернуться к началу
СообщениеДобавлено: Пт май 26, 2017 9:05 am 
Не в сети

Зарегистрирован: Вт май 11, 2010 8:14 am
Сообщения: 112
Для колибри был tcc, мне кажется для небольшого приложения это проще чем устанавливать весь пакет и выполнять необходимые настройки.
Единственное не помню где лежит.


Вернуться к началу
СообщениеДобавлено: Пт май 26, 2017 3:58 pm 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 268
tcc лежит тут
читать обсуждение дальше - с путями были заморочки

Кстати, упрек в том, что он не развивается - некорректен - недавно вышла версия 0.9.27
https://github.com/mirror/tinycc

Только это немного другая ветка (относительно версии для Колибри), с которой непросто смержится. Да и изменения x86 почти не касаются


Вернуться к началу
СообщениеДобавлено: Пт май 26, 2017 9:41 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 18, 2017 2:29 am
Сообщения: 66
Siemargl писал(а):
Вот, приложу чтобы далеко не бегать libc.a для статической линковки
libc.dll.a для динамической - там немного другая строка будет -T app-dynamic.lds -lgcc -lc.dll

Положить в gcc/lib.

Это для gcc 5.4
Спасибо, но необходимости в libc.a нет, так как она включена в toolchain от Serge.

_________________
The Glass is Always Half Full! :mrgreen:


Вернуться к началу
СообщениеДобавлено: Пт май 26, 2017 9:52 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 18, 2017 2:29 am
Сообщения: 66
Siemargl писал(а):
tcc лежит тут
читать обсуждение дальше - с путями были заморочки
Спасибо, буду посмотреть. :mrgreen:
Siemargl писал(а):
Кстати, упрек в том, что он не развивается - некорректен - недавно вышла версия 0.9.27
https://github.com/mirror/tinycc

Только это немного другая ветка (относительно версии для Колибри), с которой непросто смержится. Да и изменения x86 почти не касаются
Ну, я заходил на оф. сайт, а там, лежит старая версия 0.9.26 (2013). Про tcc на github, не знал, но коли так, то это чудненько. :)

_________________
The Glass is Always Half Full! :mrgreen:


Вернуться к началу
СообщениеДобавлено: Пт май 26, 2017 10:01 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 18, 2017 2:29 am
Сообщения: 66
Unduing писал(а):
Для колибри был tcc, мне кажется для небольшого приложения это проще чем устанавливать весь пакет и выполнять необходимые настройки.
Проще, но мы, лёгких путей не ищем - хардкор наше всё но оптимизации нет. :)

_________________
The Glass is Always Half Full! :mrgreen:


Вернуться к началу
СообщениеДобавлено: Пт май 26, 2017 10:19 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 18, 2017 2:29 am
Сообщения: 66
Всё-таки решил продолжить разбираться с kos-gcc. Долго думал и понял, что линкеру "kos32-ld" не хватало библиотеки "libc.a". Надо было, прописать к ней путь в командной строке. Теперь линкует.

В общем, строка такая:
Код:
kos32-ld -static -nostdlib -T ./sdk/sources/newlib/static.lds -Map=hello.map -L ./sdk/lib -L /usr/local/win32/lib -o hello hello.o -lc -lgcc -lc
Но теперь, не работает "kos32-objcopy".

Делаю так:
Код:
kos32-objcopy hello -O hello.kex
Вывод с ошибкой, такой:
Код:
kos32-objcopy:stC5GnIu: Invalid bfd target
WTF спрашивается? :evil:

_________________
The Glass is Always Half Full! :mrgreen:


Вернуться к началу
СообщениеДобавлено: Пт май 26, 2017 10:33 pm 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 268
kos32-objcopy hello -O binary


Вернуться к началу
СообщениеДобавлено: Сб май 27, 2017 12:26 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 18, 2017 2:29 am
Сообщения: 66
Siemargl писал(а):
kos32-objcopy hello -O binary
Во имя Исаака Ньютона, спасибо! Исполняемый файл, теперь есть. :D Только что-то больно большой - 111.4K. :?

_________________
The Glass is Always Half Full! :mrgreen:


Вернуться к началу
СообщениеДобавлено: Сб май 27, 2017 1:13 am 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 268
перед objcopy надо делать strip - удаляет ненужную для отладки инфу

вариант 2 - собирать с libc.dll.a (strip все= нужен)


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 41 сообщение ]  На страницу Пред. 1 2 3 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB