-
Как заставить Lazarus компилить проект с ключом линкера --large-address-aware? Судя по документации, надо в опциях компиляции (закладка Linker) указать дополнительный параметр (-k) --large-address-aware... но хоть ты тресни, не хочет работать.
После некоторых попыток, Lazarus'ом был создан батник ppas.bat - который умел линковать мою программу. Так вот, если я там напрямую указывал нужный параметр линковщику (ld.exe) то программа линковалась с этим параметром (т.е. это означает, что LD.exe правильно отрабатывает ключ --large-address-aware, и видимо это означает, что Lazarus тупо не передает его компоновщику при комплиции проекта из IDE)
P.S. В принципе, у EXE можно установить параметр LARGEADDRESSAWARE с помощью утилиты от EditBin в составе MS Visual Studio 9... но блин неохота ставить студию ради этой тулзы... -
ммм... в общем, пока обошел эту проблему очень просто. Случайно наткнулся на маленькую тулзу, которая меняет заголовок у EXE'шника.
http://ntcore.com/4gb_patch.php
Дальше, в свойствах компиляции, на последней закладке, прописываем секцию "Execute after" и все :)
P.S. Если возник вопрос, для чего это нужно, то отвечу. Без LARGEADDRESSAWARE приложение не может выделить больше 2Гб виртуальной памяти, буть то 32 или 64 битное.