PDA

Просмотр полной версии : VBCC +kick13



breeze
04.09.2025, 14:15
Может кто-нибудь настраивал сишный компилятор vbcc (http://sun.hasenbraten.de/vbcc/index.php?view=main) под виндой?

1) Скачал «vbcc_bin_win64.zip Windows 64-bit binaries. No installer».
2) Распаковал в «C:\VBCC\»
3) Прописал в переменных средах винды PATH путь до «C:\VBCC\bin\»
4) Создал доп. переменную %VBCC% с путём до «C:\VBCC\»

Создал «hello.c»



#include <stdio.h>


int main(void) {
puts("Hello World!");
return 0;
}


Скомпилировал:


vc -v +kick13 -o hello hello.c

Запустил на амиге:

https://i.postimg.cc/Fs9jR1S8/106.png (https://postimages.org/)

Всё как бы хорошо, но хотелось бы пописать под GUI.
Скачал «ndk13.lha»

Распаковал в «C:/VBCC»

Добавил для теста в «hello.c»:


#include <exec/types.h>

А строку сборки include:



vc +kick13 hello.c -o hello -I"%VBCC%\NDK_1.3\Includes1.3\include.h\"

Файл физически точно есть:

https://i.postimg.cc/G2Zw3Z9h/image.png (https://postimages.org/)

https://i.postimg.cc/3R29p6nw/image.png (https://postimg.cc/ZBKrzfkk)

Но при попытке сборки получаем ошибку:

https://i.postimg.cc/j25wKnwr/image.png (https://postimg.cc/hzkP1j1C)

Явно почему-то не используются пути include: или я чего-то не понимаю, или как-по другому нужно эти пути указывать.

p.s. я уже пробовал напрямую указывать:



#include "c:\vbcc\NDK_1.3\Includes1.3\include.h\exec\types.h"


Да, так оно видит файл, но во первых это как бы неправильно, а во вторых ссылки внутри других include ссылаются опять на путь к файлу в виде </> и естественно ничего не собирается.

breeze
06.09.2025, 12:40
Ну что ж, у нас как обычно «спасение утопающих — дело рук самих утопающих» :rolleyes:

Итак методом научного тыка и с помощью утилиты Procmon64.exe из известного пакета «Sysinternals», удалось таки узнать,
что когда запускается vc.exe оно ломится искать конфигурационный файл по пути %VCCFG%kick13.

Вот это поворот! Нигде ни в одно документации не сказано, что нужно определить ещё одну переменную %VCCFG% и куда она должна смотреть! :eek:
Как ни трудно догадаться единственное место куда оно может смотреть это в «c:\vbcc\config\», но и тут не всё так просто оказалось.
Теперь нужно указывать в параметрах не просто +kick13 (очень странный формат), а нужно указать полный путь, так как в одном случае оно ищет kick13 отпрям в том самом месте где собирается проект,
а потом уже где конфиги, она ошибка пропала, другая осталась.

Меняем строку сборки на:


vc +"%VCCFG%"\kick13

И вуаля ошибки в «Procmon64.exe» сыпаться перестали, однако сборка так и не происходит, так как опять нихрена не видятся пути к NDK_1.3.

Решил посмотреть что из себя представляет файл kick13. Внутри куча параметров которые передаются компилятору иииии… барабанная дробь! никто понятия не имеет ни про какой NDK_1.3, то есть ОНО РЕАЛЬНО игнорирует то что передавалось в командной строке.

Лаааадно, сохраняю файл как kick13n и внутри дописываю в конец свой инклюд:


-cc=vbccm68k -quiet %s -o= %s %s -O=%ld -no-cpp-warn -I%%VBCC%%/targets/m68k-kick13/include -I%%VBCC%%/NDK_1.3/Includes1.3/include.h/

после чего строка сборки превращается в:


vc +"%VCCFG%"\kick13n hello.c -o hello

Без всяких I !!! оно собирается на ура.

Попробовал собрать пример открытия окна, тоже всё собралось и запустилось на реальной амиге.

https://i.postimg.cc/Wp6P1sHf/108.png (https://postimages.org/)

Короче, я не знаю каким надо быть вундеркиндером, что бы во всём этом разобраться без поллитры, но блин документация отстой!

ссылка на NDK_1.3 (https://drive.google.com/file/d/1Woif9FqT3NZulC0sYb6Pa9gJ6euV7to0/view?usp=sharing)

breeze
11.09.2025, 13:15
Списался я тут с автором проекта VBCC и всё оказалось банально просто. Проблема в бекслешах в пути.

Вот такое собирается без проблем:



vc +kick13 hello.c -o hello -I"%VBCC%/NDK_1.3/Includes1.3/include.h/"