Abaixo está um passo a passo para configurar o FPC/Lazarus pra compilar pra Linux i386 (32 bits) ou amd64 (64 bits). Estou presumindo que você tenha o Lazarus 1.8.4/FPC 3.0.4 instalado no PATH c:\Lazarus
Antes de começar, fique atento para dois detalhes: arquitetura do Lazarus e a arquitetura alvo de onde vc deseja rodar sua aplicação Linux, ou seja se o seu lazarus e SO Linux destino são i386 (32 bits) ou amd64 (64 bits).
Passo a passo:
- Este passo é sensivel ao seu target (Linux32 ou Linux64) e sua arquitetura do Lazarus/FreePascal (Win32 ou Win64)
Se você deseja compilar para Linux i386 (32 bits) e tem instalado o Lazarus i386 (32bits) baixe o arquivo: https://www.pilotlogic.com/sitejoom/index.php/downloads/send/6-windows32/12-win32-i386-linux-7z
Se você deseja compilar para Linux amd64 (64 bits) e tem instalado o Lazarus i386 (32bits) baixe o arquivo: https://www.pilotlogic.com/sitejoom/index.php/downloads/send/6-windows32/21-win32-x86-64-linux-7z
Se você deseja compilar para Linux i386 (32 bits) e tem instalado o Lazarus AMD64 (64bits) baixe o arquivo: https://www.pilotlogic.com/sitejoom/index.php/downloads/send/7-windows64/28-win64-i386-linux-7z
Se você deseja compilar para Linux amd64 (64 bits) e tem instalado o Lazarus AMD64 (64bits) baixe o arquivo: https://www.pilotlogic.com/sitejoom/index.php/downloads/send/7-windows64/35-win64-x86-64-linux-7z
- Este passo é sensivel a sua arquitetura do Lazarus/FreePascal (Win32 ou Win64). Descompacte o arquivo baixado no passo 1 na pasta: Lazarus 32 bits: c:\lazarus\fpc\3.0.4\bin\i386-win32 Lazarus 64 bits: c:\lazarus\fpc\3.0.4\bin\x86_64-win64
ATENÇÃO: o arquivo baixado no passo 1 contem executáveis e o diretório/pasta cidada acima também contem executáveis. Portanto tenha cuidado na hora de extrair os arquivos para que os executáveis extraidos fique na mesma pasta dos existentes, e não em uma subpastas.
- Baixe os fontes do FPC, da mesma versão do compilador que está instalado com o Lazarus: https://ufpr.dl.sourceforge.net/project/freepascal/Source/3.0.4/fpc-3.0.4.source.zip
- Extraia eles para, por exemplo, C:\fpc304sources MEMORIZE O PATH ONDE VC OS EXTRAIU
- Entre na pasta onde vc extraiu os arquivos e verifique se dentro dela (c:\fpc304sources sugestão do passo anterior) existem as pastas: compiler, rtl, packages, utils. Se não existir procure e memorize esta pasta/caminho onde estas pastas estão
- Abra o terminal (cmd) e digite os seguintes comandos:
6.1) Este passo é sensivel a sua arquitetura do Lazarus/FreePascal (Win32 ou Win64)
Se seu Lazarus é 32 bits digite a linha abaixo: PATH=c:\lazarus\fpc\3.0.4\bin\i386-win32;%PATH%
Se seu Lazarus é 64 bits digite a linha abaixo: PATH=c:\lazarus\fpc\3.0.4\bin\x86_64-win64;%PATH%
6.2) cd c:\fpc304sources // ou cd <caminho q vc memorizou no passo 5>
6.3) Este passo é sensivel a sua arquitetura do seu target, Linux i386 (32 bits) ou Linux amd64 (64 bits)
Se deseja preparar o compilador para gerar aplicativos para Linux i386 - 32 bits: digite a linha abaixo: make CPU_TARGET=i386 OS_TARGET=linux all
Se deseja preparar o compilador para gerar aplicativos para Linux amd64 - 64 bits: digite a linha abaixo: make CPU_TARGET=x86_64 OS_TARGET=linux all
6.4) Este passo é sensivel a sua arquitetura do seu target, Linux i386 (32 bits) ou Linux amd64 (64 bits)
Se deseja preparar o compilador para gerar aplicativos para Linux i386 - 32 bits: digite a linha abaixo: make crossinstall CPU_TARGET=i386 OS_TARGET=linux PREFIX=c:\Lazarus\fpc\3.0.4
Se deseja preparar o compilador para gerar aplicativos para Linux amd64 - 64 bits: digite a linha abaixo: make crossinstall CPU_TARGET=x86_64 OS_TARGET=linux PREFIX=c:\Lazarus\fpc\3.0.4
Se você irá tentar realizar estes passos em um ambiente com Delphi, Visual Studio ou qualquer outro ambiente de desenvolvimento que disponibilize a ferramenta make, verifique se os passos acima estão usando o "make" que acompanha o FPC/Lazarus. Caso contrário, erros estranhos podem acontecer nos passos 6.3 e 6.4
Pronto, se vc conseguiu executar os passos acima, isto significa que está configurado seu ambiente. Agora vamos configurar seu aplicativo para que ele possa ser compilado no Windows para o Linux
- Este passo é sensivel a sua arquitetura do seu target, Linux i386 (32 bits) ou Linux amd64 (64 bits) Baixe as libs do SO alvo (Linux) do site do codetyphon:
Se deseja compilar para Linux i386 - 32 bits: https://www.pilotlogic.com/sitejoom/index.php/downloads/send/16-linux/132-i386-linux-7z
Se deseja compilar para Linux amd64 - 64 bits: https://www.pilotlogic.com/sitejoom/index.php/downloads/download/16-linux/133-x86-64-linux-7z
- Extrair estas libs em algum de sua preferencia, MEMORIZAR O PATH
- Abra o lazarus e seu projeto
- Vá nas opçoes do projeto, Menu Project => Project options, ou simplemente pressione ctrl+Shift+f11 === NOTA: Recomendo vc criar um novo build mode para gerar pra Linux, antes de executar os passos seguintes ===
- Na tela aberta, vá em Compiler Options => Paths, e localize o item Libraries (-Fl) e adicione o path onde vc extraiu as libs do passo 7
- Este passo é sensivel a sua arquitetura do seu target, Linux i386 (32 bits) ou Linux amd64 (64 bits) Na mesma tela, vá em Compiler Options => Config and Target.
Em "Target OS (-T)" escolha: linux.
Em "Target CPU family (-P)" escolha: Se deseja compilar para Linux i386 - 32 bits: i386. Se deseja compilar para Linux amd64 - 64 bits: x86_64.
Feito as duas escolhas pressione OK e feche a tela.
- Compile sua aplicação pra Linux.
Dependendo dos componentes utilizados em sua aplicação, eles podem fazer uso de bibliotecas (vulgo DLL) que podem não terem sido disponibilizadas com o pacote de bibliotecas do CodeTyphon, gerando erros na etapa de ligação (linking) dos arquivos objeto para formar o executável. Neste caso, localize o pacote da distribuição Linux que você pretende rodar sua aplicação e extraia a "DLL"/biblioteca na mesma pasta onde foram extraidos os arquivos no passo 2