Page 2 of 3

Re: Общие вопросы по языку Си.

Posted: Wed Oct 03, 2018 7:30 pm
by JohnXenox
akron1, Siemargl Cпасибо за ответы. Буду разбираться.

Re: Общие вопросы по языку Си.

Posted: Thu Oct 04, 2018 5:57 am
by Siemargl
В 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

Re: Общие вопросы по языку Си.

Posted: Sat Oct 06, 2018 3:20 am
by JohnXenox
Siemargl Спасибо. Гляну, попробую, может чего выйдет. Но моих познаний в Си, боюсь не хватит. :mrgreen:

Re: Общие вопросы по языку Си.

Posted: Tue Oct 09, 2018 10:16 pm
by Siemargl
JohnXenox wrote:Siemargl Спасибо. Гляну, попробую, может чего выйдет. Но моих познаний в Си, боюсь не хватит. :mrgreen:
Готов пример в приложении. Важное отличие от gcc - расположение __attrib__ в объявлениях

Оказалось чуть сложнее, чем я думал.
Но зато остальные либы будет проще импортировать

Re: Общие вопросы по языку Си.

Posted: Wed Oct 10, 2018 8:19 pm
by JohnXenox
Siemargl
Большое спасибо за пример!

Я тут попытался перекомпилировать твой пример, в Linux и Kolibri, но не компилируется.

В Kolibri, tcc пишет это.
Image
Командная строка, такая:

Code: Select all

tcc libimgdemo.c loadlibimg.o -o libimgdemo -lck -I..\include -L..\lib -g
В Linux, tcc пишет это.
Image
Командная строка, такая:

Code: Select all

tcc libimgdemo.c loadlibimg.o -o libimgdemo -lck -I./include -L./lib -g
Компилятор для Kolibri, брал здесь (tcc_26_180925).

Хотелось бы узнать, что я делаю не так.

Re: Общие вопросы по языку Си.

Posted: Wed Oct 10, 2018 8:47 pm
by Siemargl
JohnXenox wrote:Siemargl
Большое спасибо за пример!

Я тут попытался перекомпилировать твой пример, в Linux и Kolibri, но не компилируется.

В Kolibri, tcc пишет это.
Image
Командная строка, такая:

Code: Select all

tcc libimgdemo.c loadlibimg.o -o libimgdemo -lck -I..\include -L..\lib -g
В Linux, tcc пишет это.
Image
Командная строка, такая:

Code: Select all

tcc libimgdemo.c loadlibimg.o -o libimgdemo -lck -I./include -L./lib -g
Компилятор для Kolibri, брал здесь (tcc_26_180925).

Хотелось бы узнать, что я делаю не так.
http://board.kolibrios.org/viewtopic.php?p=71753#p71753

про линух - непонятно почему по другому

Re: Общие вопросы по языку Си.

Posted: Wed Oct 10, 2018 9:16 pm
by JohnXenox
Siemargl
Заменил строку "#include "kos32sys1.h" на "#include "kos32sys0.h".
Теперь, пример в Колибри компилируется без ошибок, но не запускается получившийся бинарник.
Доска отладки ничего не показывает. :(

Re: Общие вопросы по языку Си.

Posted: Wed Oct 10, 2018 10:04 pm
by Siemargl
А скомпилированный мной - он тоже в архиве - запускает?

Открой board - туда пишутся ошибки и вылеты - там если что есть кнопочка режима

Re: Общие вопросы по языку Си.

Posted: Wed Oct 10, 2018 11:48 pm
by JohnXenox
Siemargl wrote:А скомпилированный мной - он тоже в архиве - запускает?
Твой бинарник запускается. :roll:
Siemargl wrote:Открой board - туда пишутся ошибки и вылеты - там если что есть кнопочка режима
Да, чего-то про кнопочку забыл. :mrgreen:

Вот скрин:
Image

Re: Общие вопросы по языку Си.

Posted: Thu Oct 11, 2018 11:54 am
by Siemargl
JohnXenox wrote:
Siemargl wrote:А скомпилированный мной - он тоже в архиве - запускает?
Твой бинарник запускается. :roll:
Siemargl wrote:Открой board - туда пишутся ошибки и вылеты - там если что есть кнопочка режима
Да, чего-то про кнопочку забыл. :mrgreen:

Вот скрин:
Image
Версию компилятора (libck) обновил до tcc_26_180925.zip?

Приложи сюда твой бинарник и .dbg файл, если версия новая

Re: Общие вопросы по языку Си.

Posted: Thu Oct 11, 2018 9:00 pm
by JohnXenox
Siemargl wrote:Версию компилятора (libck) обновил до tcc_26_180925.zip?
Я же уже написал выше...
JohnXenox wrote:Компилятор для Kolibri, брал здесь (tcc_26_180925).
Там же и libck.a находится. Или надо было отдельно, что-то закачивать или перекомпилировать?

Чтобы было понятнее, что я делал, по шагам:
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 файл.
Приложил.

Re: Общие вопросы по языку Си.

Posted: Fri Oct 12, 2018 12:24 pm
by Siemargl
JohnXenox wrote:
Spoiler:
Siemargl wrote:Версию компилятора (libck) обновил до tcc_26_180925.zip?
Я же уже написал выше...
JohnXenox wrote:Компилятор для Kolibri, брал здесь (tcc_26_180925).
Там же и libck.a находится. Или надо было отдельно, что-то закачивать или перекомпилировать?

Чтобы было понятнее, что я делал, по шагам:
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 файл.
Приложил.
Ты очень помог - оказывается в архив не попали два важных исправления из SVN

заодно откатил kos32sys1.h до рабочей

обновись до tcc_26_181012 - там же

Re: Общие вопросы по языку Си.

Posted: Fri Oct 12, 2018 12:41 pm
by Leency
На SVN/ISO версия работая?

Re: Общие вопросы по языку Си.

Posted: Fri Oct 12, 2018 12:57 pm
by Siemargl
Leency wrote:На SVN/ISO версия работая?
исходники верные, но в автосборке его нет.
там нужно собрать компилятор (скрипт вижу), libck.a /start.o и еще и поскладывать всякие include и примеры

Re: Общие вопросы по языку Си.

Posted: Fri Oct 12, 2018 4:27 pm
by JohnXenox
Siemargl wrote: Ты очень помог - оказывается в архив не попали два важных исправления из SVN

заодно откатил kos32sys1.h до рабочей

обновись до tcc_26_181012 - там же
Ясно. Щя обновлюсь.