2013-05-23 32 views
5

Szukałem trochę dokumentacji IDE Lazarusa, a do tej pory znalazłem tylko informacje dotyczące kompilacji krzyżowej, więc miałem nadzieję, że ktoś może dać mi prostą odpowiedź na ten temat. Obecnie pracuję nad projektem, który będzie wymagał kompilacji dla 32-bitowego systemu Windows oraz 64-bitowego systemu Windows. Dodatkowo, już skonfigurowałem obie wersje Free Pascal Compiler. Czy Lazarus ma jakieś wbudowane funkcje do konfigurowania w obu kompilatorach, a następnie na podstawie celu kompilacji, używając odpowiedniego kompilatora? Idealnie byłoby to zrobić na poziomie globalnym, aby konfiguracja nadal istniała w projektach, ale jeśli można to zrobić tylko na poziomie projektu, nie mam nic przeciwko robieniu tego w ten sposób.Globalne zarządzanie wieloma kompilatorami w Łazarzu IDE

Odpowiedz

5

W sprawie dalszego czytania, myślę, że znalazłem odpowiedź. Nie zdawałem sobie z tego sprawy, ale fpc ma takie same funkcje front-end jak gcc. Mając to na uwadze, implementacja funkcjonalności opisanej w moim pytaniu jest po prostu kwestią instalowania kompilatora jako cross-kompilatora, a nie jako niezależnego kompilatora. Ponieważ nie wygląda na to, że możesz użyć kompilatora x86_64 do utworzenia wersji 32-bitowej, musisz skompilować wersję 32-bitową, a następnie skompilować 64-bitową wersję. W moim przypadku najpierw skompilowany i zainstalowany kompilator Win32 przy użyciu:

make all install INSTALL_PREFIX=C:\path\to\lazarus\1.0.8\fpc\2.6.3 OS_TARGET=win32 CPU_TARGET=i686 PP=ppc386.exe

Następnie skompilowany i crossinstalled kompilatora 64-bitowe:

make crossall crossinstall INSTALL_PREFIX=C:\path\to\lazarus\1.0.8\fpc\2.6.3 OS_TARGET=win64 CPU_TARGET=x86_64

aby potwierdzić, że pracował, można znaleźć plik wykonywalny o nazwie ppcrossx64 w folderze C:\path\to\lazarus\1.0.8\fpc\2.6.3\bin\i386-win32.

+1

xxx -> i386 obecnie nie jest możliwe, ponieważ kompilator i386 używa rozszerzonych (10-bajtowych), podczas gdy inne cele tego nie obsługują. (może x86_64 tymczasem początkowo nie obsługiwał x87). Powinno to zostać naprawione przez softfloat, ale praca nad tym nie jest tak naprawdę postępująca. –

+0

Ach, to ma sens. Cieszę się, że to nie jest obsługiwane i że nie przeoczyłem dokumentacji. Dzięki za informację. –