Столкнулся вот с какой проблемой. Смартлинк не работает, если в конфиге или в командной строке выставлена опция -CX (не создаются файлы lib*.a, а в линуксе, я так понимаю, внутреннего компоновщика нету, которому на эти файлы пофиг?). В результате простая консольная программа, использующая только Classes и SysUtils получается неимоверных размеров - более 600 КБ, а консольная программа вообще без всяких модулей, кроме System, весит более 140 КБ. Если же в самом модуле указать {$SMARTLINK ON}, то все работает как и положено.
Но проблема еще и в том, что RTL и все библиотеки, что с компилятором идут, тоже собраны без смартлинка. Чтобы пересобрать библиотеки со смартлинком, надо в каждый файл вставить строку {$SMARTLINK ON}, ведь на конфигурационный файл компилятор не реагирует... Бинарники качал и с офф. репозиториев Убунты, и с freepascal.org (с сурсфоржа) - смартлинка нет нигде.
Может, кто в курсе, в чем проблема? Это глюк, или все правильно и внутренний компоновщик есть и в линуксе? Если так, то почему размер программы такой большой? Или для 64-разрядных это нормальный размер? В общем, просветите, пожалуйста.
Спасибо за внимание.
Smartlink в fpc 2.2.0 для x86_64-linux не работает?
Модератор: Модераторы
- Deepthroat
- постоялец
- Сообщения: 144
- Зарегистрирован: 06.09.2007 00:21:34
- Откуда: Outer Heaven
- Контактная информация:
- Deepthroat
- постоялец
- Сообщения: 144
- Зарегистрирован: 06.09.2007 00:21:34
- Откуда: Outer Heaven
- Контактная информация:
Вопрос снимается. В FPC 2.2.2 RC1 смартлинк прекрасно работает. Судя по всему, это был просто глюк.
