Общие вопросы по языку Си.
-
akron1, Siemargl Cпасибо за ответы. Буду разбираться.The Glass is Always Half Full!
В C_Layer есть реализация и вызовы из lib_img
http://websvn.kolibrios.org/filedetails ... on_files.c
можно адаптировать для ТСС
но я там не вижу инициализации функций памяти - и без них работали функции. может они там и не нужны?вызывались при загрузке DLL.Load
похоже на то, для полной функциональности нужно вызвать (придется на встроенном ассемблере)
lib_init при eax=mem.alloc, ebx = mem.free, ecx = mem.realloc, edx функция загрузки (нужна только для png) - можно поставить 0
функции mem.alloc итп - получают параметр в eax, возвращают eax - простые обвязки системных вызовов
слишком сложно, адаптация в топике ниже
Упд. Впрочем, думаю, что можно сделать небольшую заготовочку на FASM только скомпилировать в ELF, и TCC подцепит объектник. Надо попробовать.
Upd: Done
http://websvn.kolibrios.org/filedetails ... on_files.c
можно адаптировать для ТСС
lib_init при eax=mem.alloc, ebx = mem.free, ecx = mem.realloc, edx функция загрузки (нужна только для png) - можно поставить 0
функции mem.alloc итп - получают параметр в eax, возвращают eax - простые обвязки системных вызовов
слишком сложно, адаптация в топике ниже
Упд. Впрочем, думаю, что можно сделать небольшую заготовочку на FASM только скомпилировать в ELF, и TCC подцепит объектник. Надо попробовать.
Upd: Done
Last edited by Siemargl on Tue Oct 09, 2018 10:14 pm, edited 1 time in total.
Siemargl Спасибо. Гляну, попробую, может чего выйдет. Но моих познаний в Си, боюсь не хватит.
The Glass is Always Half Full!
Готов пример в приложении. Важное отличие от gcc - расположение __attrib__ в объявленияхJohnXenox wrote:Siemargl Спасибо. Гляну, попробую, может чего выйдет. Но моих познаний в Си, боюсь не хватит.
Оказалось чуть сложнее, чем я думал.
Но зато остальные либы будет проще импортировать
- Attachments
-
-
libimgdemo.zip (122.04 KiB)Downloaded 385 times
-
Siemargl
Большое спасибо за пример!
Я тут попытался перекомпилировать твой пример, в Linux и Kolibri, но не компилируется.
В Kolibri, tcc пишет это.
Командная строка, такая:В Linux, tcc пишет это.
Командная строка, такая:
Компилятор для Kolibri, брал здесь (tcc_26_180925).
Хотелось бы узнать, что я делаю не так.
Большое спасибо за пример!
Я тут попытался перекомпилировать твой пример, в Linux и Kolibri, но не компилируется.
В Kolibri, tcc пишет это.
Командная строка, такая:
Code: Select all
tcc libimgdemo.c loadlibimg.o -o libimgdemo -lck -I..\include -L..\lib -g
Командная строка, такая:
Code: Select all
tcc libimgdemo.c loadlibimg.o -o libimgdemo -lck -I./include -L./lib -g
Хотелось бы узнать, что я делаю не так.
The Glass is Always Half Full!
http://board.kolibrios.org/viewtopic.php?p=71753#p71753JohnXenox wrote:Siemargl
Большое спасибо за пример!
Я тут попытался перекомпилировать твой пример, в Linux и Kolibri, но не компилируется.
В Kolibri, tcc пишет это.
Командная строка, такая:В Linux, tcc пишет это.Code: Select all
tcc libimgdemo.c loadlibimg.o -o libimgdemo -lck -I..\include -L..\lib -g
Командная строка, такая:Компилятор для Kolibri, брал здесь (tcc_26_180925).Code: Select all
tcc libimgdemo.c loadlibimg.o -o libimgdemo -lck -I./include -L./lib -g
Хотелось бы узнать, что я делаю не так.
про линух - непонятно почему по другому
Siemargl
Заменил строку "#include "kos32sys1.h" на "#include "kos32sys0.h".
Теперь, пример в Колибри компилируется без ошибок, но не запускается получившийся бинарник.
Доска отладки ничего не показывает.
Заменил строку "#include "kos32sys1.h" на "#include "kos32sys0.h".
Теперь, пример в Колибри компилируется без ошибок, но не запускается получившийся бинарник.
Доска отладки ничего не показывает.
The Glass is Always Half Full!
А скомпилированный мной - он тоже в архиве - запускает?
Открой board - туда пишутся ошибки и вылеты - там если что есть кнопочка режима
Открой board - туда пишутся ошибки и вылеты - там если что есть кнопочка режима
Версию компилятора (libck) обновил до tcc_26_180925.zip?
Приложи сюда твой бинарник и .dbg файл, если версия новая
Я же уже написал выше...Siemargl wrote:Версию компилятора (libck) обновил до tcc_26_180925.zip?
Там же и libck.a находится. Или надо было отдельно, что-то закачивать или перекомпилировать?JohnXenox wrote:Компилятор для Kolibri, брал здесь (tcc_26_180925).
Чтобы было понятнее, что я делал, по шагам:
1. Скачал tcc_26_180925.zip.
2. Разархивировал файл tcc_26_180925.zip.
3. Удалил файл kos32-tcc.exe (в Колибри, не требуется) в папке tcc_26_180925.
4. Забросил в папку tcc_26_180925, всё содержимое папки libimgdemo.
5. Удалил папку libimgdemo.
6. Папку tcc_26_180925, переименовал в libimgdemo.
7. Добавил shell скрипт для компиляции. Командную строку, уже публиковал выше.
8. Бросил папку на раздел для Колибри.
9. Загрузился в Колибри.
10. Открыл файловый менеджер и перешёл в директорию libimgdemo.
11. Запустил shell скрипт, для перекомпиляции.
12. Попробовал запустить бинарник. Бенарник не запустился.
13. Всё.
Приложил.Siemargl wrote:Приложи сюда твой бинарник и .dbg файл.
- Attachments
-
-
libimgdemo_dbg.tar.gz (24.27 KiB)Downloaded 359 times
-
The Glass is Always Half Full!
Ты очень помог - оказывается в архив не попали два важных исправления из SVNJohnXenox wrote:Spoiler:
Я же уже написал выше...Siemargl wrote:Версию компилятора (libck) обновил до tcc_26_180925.zip?Там же и libck.a находится. Или надо было отдельно, что-то закачивать или перекомпилировать?JohnXenox wrote:Компилятор для Kolibri, брал здесь (tcc_26_180925).
Чтобы было понятнее, что я делал, по шагам:
1. Скачал tcc_26_180925.zip.
2. Разархивировал файл tcc_26_180925.zip.
3. Удалил файл kos32-tcc.exe (в Колибри, не требуется) в папке tcc_26_180925.
4. Забросил в папку tcc_26_180925, всё содержимое папки libimgdemo.
5. Удалил папку libimgdemo.
6. Папку tcc_26_180925, переименовал в libimgdemo.
7. Добавил shell скрипт для компиляции. Командную строку, уже публиковал выше.
8. Бросил папку на раздел для Колибри.
9. Загрузился в Колибри.
10. Открыл файловый менеджер и перешёл в директорию libimgdemo.
11. Запустил shell скрипт, для перекомпиляции.
12. Попробовал запустить бинарник. Бенарник не запустился.
13. Всё.Приложил.Siemargl wrote:Приложи сюда твой бинарник и .dbg файл.
заодно откатил kos32sys1.h до рабочей
обновись до tcc_26_181012 - там же
На SVN/ISO версия работая?
Из хаоса в космос
исходники верные, но в автосборке его нет.Leency wrote:На SVN/ISO версия работая?
там нужно собрать компилятор (скрипт вижу), libck.a /start.o и еще и поскладывать всякие include и примеры
Ясно. Щя обновлюсь.Siemargl wrote: Ты очень помог - оказывается в архив не попали два важных исправления из SVN
заодно откатил kos32sys1.h до рабочей
обновись до tcc_26_181012 - там же
The Glass is Always Half Full!
Who is online
Users browsing this forum: No registered users and 1 guest