Page 1 of 4
Сборка системы (вопрос новичка)
Posted: Sun Dec 11, 2011 10:23 am
by W1shMaster
Всем привет. Я новичок в программировании на Ассемблере и решил разобраться в исходниках KolibriOS. После ковыряния так сказать "методом тыка" у меня появился вопрос: как её компилировать?? Почитал форум и wiki - инфы не нашёл. Я так понимаю надо юзать FASM, а главный файл сборки - это kernel.asm? В общем как её собрать?
Re: Сборка системы (вопрос новичка)
Posted: Sun Dec 11, 2011 12:33 pm
by art_zh
привет,
kernel.asm - это уже тепло.
Погляди рядом, может найдёшь makefile или build.bat ?
Re: Сборка системы (вопрос новичка)
Posted: Sun Dec 11, 2011 1:48 pm
by W1shMaster
Build.bat не работает! Открываю блокнотом и вижу строку
fasm -m 65536 kernel.asm bin\kernel.mnt
я так понимаю он через FASM с параметрами компилирует kernel.asm в kernel.mnt но ничего не работает. Прошу обьяснить что, куда и как.
FASM версий v1.6.7.26 с оконным интерфейсом.
Re: Сборка системы (вопрос новичка)
Posted: Sun Dec 11, 2011 3:27 pm
by Wildwest
нужен досовский фасм, если ты из винды хочешь компилировать
Re: Сборка системы (вопрос новичка)
Posted: Sun Dec 11, 2011 3:42 pm
by Mario
Вернее нужен консольный FASM, а досовский тут совершенно не причем.
Re: Сборка системы (вопрос новичка)
Posted: Sun Dec 11, 2011 8:05 pm
by Элита
fasm.exe, kernel.asm и build.bat должны лежать в одной папке, тогда все прекрасно пашет
Re: Сборка системы (вопрос новичка)
Posted: Sun Dec 11, 2011 8:29 pm
by SoUrcerer
А еще можно установить fasm как положено, добавить его папку в path.
Re: Сборка системы (вопрос новичка)
Posted: Sun Dec 11, 2011 8:33 pm
by Mario
Элита wrote:fasm.exe, kernel.asm и build.bat должны лежать в одной папке, тогда все прекрасно пашет
На самом деле fasm.exe должен лежать в:
cmd path
Не нужно разводить 100500 копий программы.
Спрашивающему рекомендуется нагуглить популярную литературу и почитать документацию самого FASM. А также правильно задавать вопросы. Правильный вопрос это уже половина ответа. А то даже среда, в которой компиляция производится, не указана.
Re: Сборка системы (вопрос новичка)
Posted: Mon Dec 12, 2011 10:43 am
by z525
Уже спрашивали подобное и будут спрашивать в будущем не раз.
viewtopic.php?f=1&t=1960
Короткое описание этого процесса (например на Wiki) может изменить ситуацию.

Re: Сборка системы (вопрос новичка)
Posted: Mon Dec 12, 2011 11:16 am
by W1shMaster
Так оно и есть, что описания нету нормального и постоянно рождаются вопросы... Я закинул fasm.exe в директорию с build.bat и запустил батник. Пишет короче: версию фасма и память (65536 кб), потом ссылается на файл boot/bootvesa.inc с линией 122. Не может распознать press_key и на этом fasm execution failed полный. Что я делаю не так?)
Re: Сборка системы (вопрос новичка)
Posted: Mon Dec 12, 2011 12:33 pm
by Mario
W1shMaster
Ты явно что-то делаешь не так.
1. У меня есть локальная копия SVN и в ней SVN/kernel/trunk на ноутбуке с W7
2. Скачиваю последний
FASM - flat assembler 1.69.35 for Windows
3. Распаковываю и размещаю в директории SVN/kernel/trunk файл fasm.exe
4. Запускаю build.bat и отвечаю и выбираю сборку kernel и ru
5. PROFIT!
Spoiler:

-
build.png (27.48 KiB)
Viewed 8195 times
Как работать с SVN читать тут -
Работа с SVN сервером kolibrios
Взять последнюю ночную сборку можно тут -
http://builds.kolibrios.org/rus/
Как включить мозг ссылку не дам, сам нагуглишь
http://www.google.ru/
Re: Сборка системы (вопрос новичка)
Posted: Mon Dec 12, 2011 1:02 pm
by CleverMouse
Не путайте человека. Сообщение "boot/bootvesa.inc [122]: error: undefined symbol 'pres_key'" действительно появляется при компиляции исходников версии 0.7.7.0, если lang.inc некорректен, и досовость/консольность/IDEшность компилятора тут ни при чём.
W1shMaster, makefile и build.bat не только запускают fasm, но предварительно создают файл lang.inc из одной строки
Вместо ru стоит выбранный язык, это может быть также en. Или несколько других, но остальные поддерживаются значительно хуже. Соответственно, если ты хочешь компилировать из fasmw, создай такой файл рядом с kernel.asm руками. Следовать остальным советам из этой темы необязательно.
Re: Сборка системы (вопрос новичка)
Posted: Mon Dec 12, 2011 1:13 pm
by Mario
А зачем брать устаревший код, если перспективность его использования весьма сомнительна? ССЗБ?
Re: Сборка системы (вопрос новичка)
Posted: Mon Dec 12, 2011 1:20 pm
by CleverMouse
На главной странице официального сайта есть прямая ссылка на скачивание исходников версии 0.7.7.0, но нет ни слова про SVN. Человек, скачавший официальные исходники, имеет право ожидать, что они скомпилируются?
Re: Сборка системы (вопрос новичка)
Posted: Mon Dec 12, 2011 2:00 pm
by Mario
Он вправе ожидать что код соберется той версией инструмента, которая была на момент создания дистрибутива - два года назад.
Вот если в самой Колибри не собирается ядро, то это уже вопрос к сборщику дистрибутива, что столь очевидный ляп прошел в сборку.
Разработчики инструментов (компиляторов) склонны менять синтаксис, а прошло уже 2 года. К тому же на главной странице есть ссылка на ночные сборки.
И если уж при всем прочем - человек никак не уточнял исходники какого именно дистрибутива он использует. Так что еще бабушка на двое сказала, кто кого запутывает.