OberonCore https://forum.oberoncore.ru/ |
|
Управление сборкой https://forum.oberoncore.ru/viewtopic.php?f=157&t=6628 |
Страница 1 из 1 |
Автор: | Дмитрий Дагаев [ Воскресенье, 28 Июнь, 2020 11:40 ] |
Заголовок сообщения: | Управление сборкой |
Получение исполняемых файлов в МультиОберона осуществляется поэтапно: 1. Компиляция в файлы модулей: .ocf - для Omb BlackBox бэкенда; .c .h - для Omf OFront бэкенда; .ll .bc - для Oml LLVM бэкенда. 2. Получение объектных файлов с помощью cl/gcc/clang - для Omf OFront; с помощью llc - для Oml LLVM. 3. Линковка в исполняемый файл. Этапы 2 и 3 требуют явного перечисления списка всех импортируемых модулей. Для хранения данной информации, а также дополнительной информации по ограничениям используемых модулей добавлены, помимо файлов .osf, также файлы .ouf в каталоги Sym,Sfwe,Sfwr,... Эти файлы генерятся автоматически компилятором. |
Автор: | Дмитрий Дагаев [ Воскресенье, 28 Июнь, 2020 11:44 ] |
Заголовок сообщения: | Re: Управление сборкой |
Для сборки OmtestHelloWorld.exe бэкендом BlackBox требуются 2 команды: Код: Bbwe\ombsh co -odc OmtestHelloWorld Bbwe\ombsh link -r OmtestHelloWorld Первая компилирует из файла .odc. Вторая линкует с опцией рекурсии. Информация об используемых модулях доступна через команду траверса trav: Код: c:\suok5\test\Mob>Bbwe\ombsh trav OmtestHelloWorld
OmtestHelloWorld Runner SYSTEM ?c:\suok5\test\Mob/System/Sbwe/SYSTEM.ouf Kernel ?c:\suok5\test\Mob/System/Sbwe/Kernel.ouf OStrings Strings ?c:\suok5\test\Mob/System/Sbwe/Strings.ouf Math ?c:\suok5\test\Mob/System/Sbwe/Math.ouf -OStrings OLog Log ?c:\suok5\test\Mob/System/Sbwe/Log.ouf -OLog Api -Api [KERNEL32.dll] -Runner -OmtestHelloWorld |
Автор: | Дмитрий Дагаев [ Воскресенье, 28 Июнь, 2020 11:48 ] |
Заголовок сообщения: | Re: Управление сборкой |
Для сборки OmtestHelloWorld.exe бэкендом Omf OFront требуются 3 команды: Код: Bfwe\omfsh co -odc :OmtestHelloWorld Bfwe\omfsh build -r OmtestHelloWorld Bfwe\omfsh link -r OmtestHelloWorld Первая компилирует и создаем main опция : . Вторая создает объектники. Третья линкует с опцией рекурсии. |
Автор: | Дмитрий Дагаев [ Воскресенье, 28 Июнь, 2020 12:09 ] |
Заголовок сообщения: | Re: Управление сборкой |
Сборка с Oml LLVM аналогична. Во всех сборках предусмотрен флаг -n new, который производит частичную перекомпиляцию объектников. Ибо полная тащит за собой список импорта: Код: c:\suok5\test\Mob>Blwr\omlsh build -r OmtestHelloWorld ===== obj-building OStrings ... done ===== obj-building OLog ... done ===== obj-building HostConLog ... done ===== obj-building Kernel ... done ===== obj-building Runner ... done ===== obj-building OmtestHelloWorld ... done Это - экономия, т.к. сборка с оптимизацией gcc, llc занимает время. Пример: Код: c:\suok5\test\Mob>Blwr\omlsh co -odc :OmtestHelloWorld
oml:compiling c:\suok5\test\Mob/Omtest/Mod/HelloWorld.odc >c:\suok5\test\Mob/Omtest/Clwr/OmtestHelloWorld .ll=9744 .bc=3428 c:\suok5\test\Mob>Blwr\omlsh build -r -n OmtestHelloWorld ===== obj-building OmtestHelloWorld ... done |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |