ZerstoreN, к тебе несколько вопросов:
как ты устанавливал Free Pascal?
какую версию пробовал?
> к тому же если какая-то забытая неиспользуемая длл не существует, приложение не может запуститься.
динамическую загрузку DLL пробовал?
> Буфер обмена в IDE не сопряжен с буфером windows, что тоже весьма удручает..
Copy to Windows
Paste from Windows
A unit that is compiled in the {$SMARTLINK ON} state will be compiled in such a way that it can be used for smartlinking. This means that the unit is chopped in logical pieces: each procedure is put in it’s own object file, and all object files are put together in a big archive. When using such a unit, only the pieces of code that you really need or call, will be linked in your program, thus reducing the size of your executable substantially.
Beware: using smartlinked units slows down the compilation process, because a separate object file must be created for each procedure. If you have units with many functions and procedures, this can be a time consuming process, even more so if you use an external assembler (the assembler is called to assemble each procedure or function code block separately).
The smartlinking directive should be specified before the unit declaration part:
{$SMARTLINK ON}
Unit MyUnit;
Interface
...
This directive is equivalent to the -Cx command-line switch.
Взято из
$SMARTLINK : Use smartlinkingSmartlink — это технология, когда к проекту подключается только то, что действительно необходимо, а не модули целиком. Чтобы это работало, сами модули должны быть скомпилированы с директивой {$smartlink on} или ключом командной строки -CX. Иногда, особенно в нестабильных версиях, стандартные модули скомпилированы иначе. Так это или нет, можно узнать поискав файлы вида libp<имя модуля>.a — если такой файл существует, то модуль скомпилирован правильно. Кроме того, следует проверить опции компилятора в командной строке и файле fpc.cfg: чтобы компилятор старался использовать smartlink везде, где это возможно, должна использоваться опция -XX.
Что делать, если соответствующий файл не найден? Лучший способ — скачать и перекомпилировать с нужными опциями RTL, что, однако, требует некоторого понимания структуры исходников FPC и принципов его работы… Более простой способ — поместить в каталог проекта нужный модуль (например sysutils.pp), а так же .inc-файлы, которые он использует, и выставить в нем соответствующую директиву. Главный недостаток этого способа — с модулем System такое не пройдет, а он «весит» более 100 килобайт.
Взято из
http://freepascal.ru/article//freepasca ... 520001454/
Дополнительно:
Smartlinking