При попытке откомпелировать файл (не использующий стд. библиотеки), получаю сообщение
ppc386 -Rintel kernel.pas
kernel.pas(5,1) Fatal: Can't find unit System used by kernel
Fatal: Compilation aborted
т.е. не находит файл RTL-библиотеки System.o
есть-ли параметры для FPC, чтоб он не присобачивал RTL к моему коду?
...
ЗЫ
по-сути мне это не критично, просто хотел для себя составить небольшой набор утилит (LCC, FPC, LD, MAKE и ещё парочка) - умещается в пару-тройку Мб, чтоб не таскать кучу, ненужных мне, файлов вроде RTL и доп. утилит, а иметь при себе компиллер, линкер, make... ну вобщем самое необходимое...
копиляция без RTL
Модератор: Модераторы
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Насколько я понимаю, обойтись вообще без модуля system невозможно. Но модуль system - это не вся RTL, а только малая часть.
Кроме того, можно попробовать скомпилировать вариант "для встраиваемых систем", имеющий минимум функциональности, и, соответственно, размера. Это управляется директивами условной компиляции вида FPC_HAS_FEATURE_xxx, например, FPC_HAS_FEATURE_ANSISTRINGS. Но как конкретно это делается, я не знаю.
Кроме того, можно попробовать скомпилировать вариант "для встраиваемых систем", имеющий минимум функциональности, и, соответственно, размера. Это управляется директивами условной компиляции вида FPC_HAS_FEATURE_xxx, например, FPC_HAS_FEATURE_ANSISTRINGS. Но как конкретно это делается, я не знаю.
- bw
- постоялец
- Сообщения: 359
- Зарегистрирован: 01.12.2005 10:36:23
- Откуда: Усть-Илимск
- Контактная информация:
Попробуй использовать флаг -Us.
Хотя в таком случае врядли удастся собрать исполняемый файл, скорее всего, только модуль. Но для сборки RTL-заглушки или просто своего RTL этого достаточно.
p.s. Я использую этот флаг только для компиляции своего system.pp в модуль, все остальные модули RTL, например, objpas, sysinitpas (нужен при сборке PE, если я правильно помню), dynlibs и т.д., собираю как обычные модули. http://www.kolibrios.org/repos/programs ... /build.bat - скрипт для сборки конкретного RTL, правильнее использовать Makefile.fpc, но пока руки не дошли.
..bw
Хотя в таком случае врядли удастся собрать исполняемый файл, скорее всего, только модуль. Но для сборки RTL-заглушки или просто своего RTL этого достаточно.
p.s. Я использую этот флаг только для компиляции своего system.pp в модуль, все остальные модули RTL, например, objpas, sysinitpas (нужен при сборке PE, если я правильно помню), dynlibs и т.д., собираю как обычные модули. http://www.kolibrios.org/repos/programs ... /build.bat - скрипт для сборки конкретного RTL, правильнее использовать Makefile.fpc, но пока руки не дошли.
..bw
