Lazarus Faq/pt

From Free Pascal wiki
Jump to: navigation, search

العربية (ar) Deutsch (de) English (en) español (es) français (fr) magyar (hu) italiano (it) 日本語 (ja) 한국어 (ko) português (pt) русский (ru) slovenčina (sk) 中文(中国大陆)‎ (zh_CN) 中文(台灣)‎ (zh_TW)

Contents

Geral

Onde eu posso encontar mais FAQ?

Veja o website oficial. Há um outro FAQ também.

Por que os binários gerados são tão grandes?

Os binários são grandes porque eles incluem uma série de informações de depuração necessárias para usar o gdb (GNU Debugger).

O compilador tem uma opção para remover a informação de depuração do executável (-Xs), mas devido ao um bug no compilador (versão 2.0.2 ou anterior), isso não funciona corretamente. Isso foi arrumado na versão de desenvolvimento do compilador.

Você pode usar um programa chamado "strip" para remover os símbolos de depuração do arquivo executável. Ele está localizado no diretório lazarus\pp\bin\i386-win32\.

Simplesmente digite "strip --strip-all <seu arquivo executável com o caminho>" na linha de comando.

Se você deseja deixar seu programa ainda menor, você deve tentar também o UPX ([1]). O UPX é um ótimo compressor de executável. Ele não inclui memória DUPLA overhead no lugar da descompressão. Ele também tem uma rápida descompressão (~10 MB/sec em um Pentium 133).

Para usar upx simplesmente digite "upx <seu arquivo executável com o caminho>" na linha de comando.

após usar ambos strip e upx um simples programa Lazarus GUI terá:

  • ~ 700kb no Linux
  • ~ 420kb no Windows

Uma resposta mais detalhada está dada em Size Matters.

Também é importante notar que um programa hello world no lazarus já inclui uma imensa quantia de recursos. Isso inclui:

  • Biblioteca de manipulação de XML
  • Biblioteca de manipulação de Imagem para arquivos png, xpm, bmp e ico
  • Aproximadamente todos os widgets da Biblioteca de Componentes Lazarus
  • Toda a Biblioteca de RunTime do Free Pascal

Portanto ele é muito grande, mas ele já inclui uma quantia de aproximadamente tudo que uma aplicação real não-trivial precisará.

O tamanho do executável do Lazarus inicia grande, mas cresce muito devagar, por causa do compilador Free Pascal e a forma que os formulário lazarus operam. Um projeto c++ (veja um exemplo, mas aplique para outras linguagens / ferramentas também) inicia muito pequeno no hello world, mas rapidamente aumenta exponencialmente quando você precisa de recursos para escrever uma aplicação não-trivial.

Lazarus vs cpp.png

Porque a vinculação é lenta no Windows?

Falando de modo geral, a compilação no Windows leva mais tempo que em outras plataformas porque o GNU Linker utilizado pelo Free Pascal é lento neste plataforma. Este problema afeta apenas o Windows, e é somente mau em computadores relativamentes velhos (com menos de 1Ghz) e computadores com pouca RAM (128MB ou menos).

Também, se você usar vinculação inteligente (smartlink) na LCL a vinculação será mais lenta. Um estudo sobre isso está localizado aqui: File size and smartlinking

Um vinculador interno foi desenvolvido, e está pronto, mas somente estará disponível quando Free Pascal 2.2 for lançado (naturalmente ele já está disponível via subversion). Ele diminuirá o tempo de vinculação drasticamente.

Eu preciso de pc386.cfg ou fpc.cfg?

Você precisa somente de fpc.cfg. Nesse caminho o compilador sabe onde procurar as bibliotecas.

Como eu compilo o Lazarus?

Faça algo como:

$ cd lazarus
$ make

Como eu crio outros projetos baseados na LCL

Se você não pode usar o IDE para criar suas aplicações, use lazbuild. Ele é uma versão por linha de comanda do IDE para criar projetos e pacotes lazarus. Se você deseja criar aplicações LCL sem o IDE e sem o lazbuild, adicione as seguintes linhas para o final do seu fpc.cfg

  # caminho de busca para outros toolkits (Linux)
  -Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/{SeuToolKit}
  # caminho de busca para outros toolkits (Windows)
 -Fu/{SeusDiretorioLazarus}/components/units/{SeuToolKit}
Onde {SeuToolKit} pode ser gtk2, gnome, qt ou win32 e execute:
ppc386 seu.projeto.pp

Dica: Não esqueça de instalar os pacotes de desenvolvimento para seu toolkit, caso contrário você poderá receber algo como Linker message: cannot find -l.

Qual versão do FPC é requerida?

2.0.4 para MacOSX e 2.2.0 para todos os outros sistemas. Aviso: A versão 2.2.0 tem um bug no MacOSX com nomes de arquivos sensíveis a maiuscúlas-minúsculas. Você pode também usar a versão svn do fpc 2.2.1 e 2.3.x.

Eu não consigo compilar Lazarus

  1. Verifique se o seu compilador tem a versão correta.
  2. Verifique se as bibliotecas fpc são de versão idêntica.
  3. Verifique se você tem um fpc.cfg e não um antigo ppc386.cfg
  4. Verifique também o "FAQs dependentes de SO"

Quando eu tento compilar um projeto, eu tenho um erro

"Cannot find Unit interfaces". Como resolver isso?

Esta unit compilada pode ser encontrada em {LazarusDir}\lcl\units\{TargetCPU}\{TargetOS}\{LCLWidgetSet}\interfaces.ppu.

Se você selecionar um widgetset diferente do que o que você utilizou para criar lazarus, você precisa criar a LCL para este widgetset.

Se ele estiver lá, você vai receber este erro, você esta usando um compilador diferente / rtl para compilar seu projeto do que o utilizado para compilar seu Lazarus IDE. Você pode fazer uma das seguintes opções:

  • Recriar a LCL (ou o Lazarus completamente) com o compilador selecionado no Environmnent Options. Você pode isso

com Tools -> Build Lazarus. Antes de fazer isso, verifique as configurações atuais em Tools -> Configure Build Lazarus.

  • Mude o compilador em Environment Options para o utilizado por você para compilar Lazarus.

Veja atentamente também em Environment Options para ver se você esta usando os caminhos corretos para o diretório Lazarus e o diretório dos fontes FPC. Verifique que este este representa somente uma versão no arquivo de configuração do compilador fpc.cfg - ele deve residir em /etc/ para sistemas Linux/Unix ou no mesmo diretório que o do compilador fpc para sistemas Windows. Se fez update do seu compilador algumas modificações vão ser encontradas para uma versão nova; podem ser encontradas no diretorio do software montou seu novo compilador.

Quando eu tento compilar projetos Delphi em Lazarus, eu tenho erro

na linha :{$R *.DFM} Como eu posso resolver este problema ?

Lazarus (ou melhor, Linux) não entende de recursos), Deste modo você não pode usá-los no caminho Delphi/win32 executado. De qualquer modo Lazarus usa um metódo considerável compátivel com esse. Você pode entretanto usar seus layouts Delphi (arquivos .dfm) se você usar as seguintes etapas:

  • Você precisa de uma versão textual dos arquivos .dfm. D5 e maior são feitos com um padrão. Se você tem arquivos antigos: ALT-F12 para ver o layout como texto e colar/copiar. Quando você tem um arquivo de texto .dfm, copia corretamente ele para um arquivo .lfm.
  • Criar um arquivo lazres (em lazarus/tools) lazres seuform.lrs seuform.lfm
  • Adicionar a seguinte seçao de inicialização
     initialization
     {$I yourform.lrs}

Por favor tenha em mente que nem todas as propriedades do dfm são suportadas ainda por lazarus, deste modo seu poder pode "dar pau".

'Identifier not found LazarusResources'.

Quando cria um formulário o Lazarus automaticamente adiciona alguns units extra para seção uses da unit do seu formulário. Durante a conversão de uma unit delphi para uma unit Lazarus isto não ocorre. Assim você precisa adicionar LResources para a seção uses da unit do seu form.

Quando acesso os eventos de objetos (ex: o evento onclick de um botão) recebo a seguinte mensagem de erro: ERROR unit not found: stdCtrls

Certifique, em Project -> Project Inspector, que o seu projeto depende no pacote 'LCL' e que você tem instalado o fontes do FPC.

Lazarus é uma IDE e biblioteca de componentes visuais LCL. Todo outro material, como IO, Database, FCL e RTL são fornecidos por FPC. A IDE precisa dos caminhos para todos os fontes.

O caminho do fonte FPC pode ser ajustado via: Environment -> General Options -> Files -> FPC source path

Como adicionar um pequeno arquivo no executável, sem necessitar de um arquivo separado. Como adicionar um ressource?

Por exemplo:

/your/lazarus/path/tools/lazres sound.lrs sound1.wav sound2.wav ...

criará um soundlrs do sound1.wav e sound2.wav.

Então inclua *antes* do arquivo de formulário lrs:

...
initialization
{$i unit1.lrs} // este é o arquivo de recurso principal (primeiro)
{$i sound.lrs} // arquivo de recurso definido pelo usuário

end.

Em seu programa você pode usar então:

Sound1AsString:=LazarusResources.Find('sound1').Value;

Qual o significado das várias extensões de arquivos usadas pelo Lazarus?

O Tutorial Os "Arquivos do Lazarus" explica algumas extensões em um exemplo. Aqui uma breve lista:

*.lpi 
Arquivo de Informação de Projeto Lazarus (armazenado em XML; Contém configurações especificas do projeto)
*.lpr 
Arquivo de Projeto do Lazarus; contém o fonte Pascal do programa principal
*.lfm 
Arquivo de Formulário Lazarus; contém informação de configuração de todos os objetos em um formulário (armazenados em um formato especifico do Lazarus; as ações são descritas pelo código-fonte Pascal em um arquivo *.pas correspondente)
*.pas ou *.pp 
Unit com o Código Pascal (normalmente para um formulário, armazenado em um arquivo *.lfm correspondente)
*.lrs 
Arquivo de Recurso do lazarus (este é um arquivo gerado; não confunda com um arquivo de recurso do Windows).
Este arquivo pode ser criado com a ferramenta lazres (no diretório Lazarus/Tools) usando a linha de comando: lazres myfile.lrs myfilres.lfm
*.ppu 
Unit Compilada
*.lpk 
Arquivo de Informação de Pacote Lazarus. (armazenado em XML; contém as configurações do pacote especificado)

Como posso ver o resultado ou saida da depuração?

A LCL tem na procedure LCLProc o envio de saida de debug:

  • DebugLn: funciona como writeLn, mas só aceita strings.
  • DbgOut: funciona como o Write, mas só aceita strings.

Em circunstancias normais o resultado é mostrado no stdout. se o stdout estiver fechado, (por exemplo quando a aplicação é {$AppType Gui} ou compilada com -WG em windows), nenhum resultado é visivel.

O Resultado do debug pode tambem ser impresso em arquivo. A unit LCLProc verifica na sua inicialização os parametros da linha de comando '--debug-log=<file>' se achar, ele envia o resultado para <file>.

Se não encontrar um paramêtro de linha de comando --debug-log, ele verifica se uma variável de ambiente xxx_debullog existe, onde xxx é o programa sem a extensão. Para lazarus isto será lazarus_debuglog. Se esta variável de ambiente existe usa esse tipo de arquivo, Exemplo, se você fizer:

set lazarus_debuglog=c:\lazarus\debug.txt

saída do debug será escrita em c:\lazarus\debug.txt.

Como isto está implementado em lclproc, toda aplicação usando lclproc, podera usar esta facilidade de saida de log.

Debuging Lazarus 
Mais aproveitável para windows:

Se você precisa de resultado em um console, adicione {$APPTYPE console} em lazarus.pp ; Então recrie o Lazarus.

Eu arrumei/implementei algo no lazarus. Como eu posso adicionar minhas mudanças para o fonte original do lazarus?

Crie um patch e envie para os desenvolvedores. Para detalhes veja Creating A Patch/pt.

Onde esta ... definido

Constantes de Teclas Virtuais

Constantes de Teclas Virtuais são definidas em LCLType. Adicione LCLtype em sua uses.

Usando a IDE

Como eu posso usar "Completador de identificador"?

Você pode invocar o "Completador de identificador" pressionando [ctrl][space]. Sob o item de menu Environment -> Editor Options -> Code Tools -> Automatic Features você pode ajustar com que velocidade isso deve acontecer automaticamente

Linux

Como eu posso depurar no Linux sem a IDE?

Primeiro de tudo você precisa de um depurador. gdb é o depurador padrão no linux e este é um GUI-frontends disponível. Um comum frontend é ddd, que é uma parte da maioria das distribuições comuns. Para compilar lazarus/lcl com depuração-informação você deve então usar um dos seguinte comandos para iniciar a seção de depuração:

 $ make clean; make OPT=-dDEBUG
 $ ddd lazarus

É avisado que ddd não é aceitável como por exemplo o depurador Lazarus. Especialmente se ele vier para vizualizar o conteúdo de uma variável você tem que levar em conta que ddd/gdb são case-sensitive uma vez que Pascal é case-insensitive. Portanto você tem que tipificar todas os nomes de variáveis em maiúsculas para ver o conteúdo delas. Para mais informação dê uma olhada nos manuais fpc.

Eu posso depurar agora, mas ddd não procura meus fontes ou reivindicações que eles contém no código. O que fazer?

Este é um problema de caminho associado com qualquer gdb ou ddd. Você pode evitar por isso

  • Use o comando "Change directory" (Mudança de Diretório) do menu ddd e escolha o diretório onde os sources estão localizados. A desvantagem deste método é que você agora não pode usar o source do programa iniciado com (ex: Lazarus). Deste modo ele pode ser necessário para mudar o diretório em múltiplas horas.
  • Em ddd vá [Edit] [gdb-settings] e determine o search-path
  • Crie um arquivo $(HOME)/.gdbinit como:
     directory /your/path/to/lazarus
     directory /your/path/to/lazarus/lcl
     directory /your/path/to/lazarus/lcl/include

Eu recebo um erro durante a vinculação que states /usr/bin/ld can\'t find -l

Distribuições Baseadas em Pacotes 
Você precisa instalar o pacote que fornece os arquivos lib<somelib>.so ou lib<somelib>.a. Bibliotecas dinâmicas do Linux tem extensão .so, enquanto bibliotecas estáticas tem extensão .a. Em algumas distros Linux você tem instalado o pacote (rpm, deb) <nomedopacote> que fornece <some lib>, mas você também precisa do pacote de desenvolvimento (rpm, deb), normalmente chamado <nomedopacote>-dev, que contém a .a (biblioteca estática) e/ou o .so (biblioteca dinâmica).
Distribuições e Manuais de Compilação Baseados em Fonte (LFS)  
Assegure-se que ali esta uma lib<somelib>.a no caminho, e que ela contém a versão correta. para deixar o vinculadores procurar a biblioteca dinâmica (dynamic library), crie um symlink chamado lib<some lib>.so para lib<some lib><version>-x,y.so se necessário(e/ou para biblioteca estática; lib<some lib>.a para lib<some lib><version>-x,y.a).
FreeBSD 
Como distros baseadas em fonte, também assegure-se que você tem -Fl/usr/local/lib no seu fpc.cfg e/ou caminho de biblioteca do Lazarus. Mantenha em mente que GTK1.2 tem "gtk12" como nome de pacote em FreeBSD. (igualmente para glib)
NetBSD 
Como distros baseadas em fonte,

também assegure-se que você tem -Fl/usr/pkg/lib no seu fpc.cfg e/ou caminho de biblioteca do Lazarus.

Como eu converto um projeto Kylix 2 em um Projeto Lazarus?

Aproximadamente o mesmo caminho como convertendo um projeto Kylix em um projeto Delphi/VCL.

A LCL (Biblioteca de Componentes Lazarus) prova compatibilidade com VCL. Kylix CLX prova compatibilidade com QT. Aqui estão umas dicas gerais:

  • renomeie todas as CLX Q-units usadas como QForms, QControls, QGraphics, ... em contra-parte em sua VCL: Forms, Controls, Graphics, ...
  • Adicione LResources na seção uses de todos dos fontes de todos os formulários
  • renomeie ou copie todos .xfm arquivos como arquivos .lfm.
  • renomeie ou copie arquivo .dpr para arquivo .lpr.
  • remova a diretiva {$R *.xfm}
  • remova a diretiva {$R *.xfm}
  • adicione a diretiva {$mode objfpc}{$H+} ou {$mode delphi}{$H+} para arquivos .pas e .lpr
  • adicione uma seção initialization em cada fonte de formulário e adicione uma diretiva include para o arquivo .lrs (arquivo de recurso lazarus):
 initialization
   {$I unit1.lrs}
Os arquivos .lrs podem ser criados via a ferramenta lazres em: (lazarusdir)/tools/lazres.
Por exemplo: ./lazres unit1.lrs unit1.lfm
  • Estabeleça diferenças. A LCL ainda não suporta todas propriedades da VCL e a CLX não é completamente compatível com a VCL.

Quando compilo Lazarus o compilador não encontra uma unit. e.g.: gtkint.pp(17,16) Fatal: Can\'t find unit GLIB

1. Verifique uma limpeza de reconstrução: execute um 'make clean all'

2. Verifique se o compilador tem a versão correta (1.0.10 ou 1.1)

3. Verifique se o compilador está utilizando o arquivo de configuração certo. A instalação normal cria /etc/fpc.cfg. Mas fpc também procura por ~/.ppc386.cfg, ~/.fpc.cfg, /etc/ppc386.cfg e ele utiliza somente o primeiro encontrado.

Dica: Você pode ver qual arquivo de configuração é usado com 'ppc386 -vt bogus

4. Verifique se o arquivo de configuração (/etc/fpc.cfg) contém os paths certo para seus fpc libs (bibliotecas fpc). Ali é necessário estar três linhas como essas:

   -Fu/usr/lib/fpc/$version/units/$target
   -Fu/usr/lib/fpc/$version/units/$target/*
   -Fu/usr/lib/fpc/$version/units/$target/rtl
A primeira parte destes caminhos (/usr/lib/fpc) depende do seu sistema. Em alguns sistemas essa pode ser por exemplo /usr/local/lib/fpc/... .
Dica: Você pode ver os seus searchpaths com 'ppc386 -vt bogus'

5. Verifique que o arquivo de configuração (/etc/fpc.cfg) não contém os search paths para os arquivos fontes lcl (.pp, .pas):

 forbidden: -Fu(lazarus_source_directory)/lcl
 forbidden: -Fu(lazarus_source_directory)/lcl/interfaces/gtk
Se você necessita adicionar a lcl em todos os seus projetos fpc, certifique-se que os dois paths parecem como seguinte e estão atrás do, acima descrito, caminho das bibliotecas fpc:
 -Fu(lazarus_source_directory)/lcl/units
 -Fu(lazarus_source_directory)/lcl/units/gtk

6. Verifique se a unit que falta (glib.ppu) existe em seu diretório de bibliotecas fpc. Por exemplo o gtk.ppu pode ser encontrado em /usr/lib/fpc/$version/units/linux/gtk/. Se ele não existir, a biblioteca fpc está corrompido e deve ser reinstalada.

7. Verifique se os fontes estão em um diretório NFS montado. Em alguns casos as atualizações NFS criam arquivos incorretamente. Plz tente mover os fontes em um não-diretório NFS e compile ali.

Eu tenho instalada a versão binária, mas quando compilo um simples projeto Lazarus dá: Fatal: Can\'t find unit CONTROLS

Provavelmente você está usando um antigo pacote fpc, do que aquele usado para construção dos binários do lazarus. A melhor solução é baixar os fontes e compilar lazarus manualmente Você pode baixar os fontes instantaneamente ou pegar o fonte via cvs:

 $ bash
 $ export CVSROOT=:pserver:cvs@cvs.freepascal.org:/FPC/CVS
 $ cvs login
 Dica: A senha é cvs (minúscula).
 $ cvs -z3 checkout lazarus
 $ cd lazarus
 $ make

Certifique-se que lazarus cria um novo diretório fonte: Environment->General Options->Files->Lazarus Directory Top

Lazarus compila, mas ao vincular falha com: libgdk-pixbuf not found

Instale a biblioteca gdk-pixbuf para gtk1.x ou então desative o uso:

Procure a biblioteca gdk-pixbuf em:

RPMs: http://rpmfind.net/linux/rpm2html/search.php?query=gdk-pixbuf&submit=Search+...&system=&arch=

Pacotes Debian: libgdk-pixbuf-dev

Fontes: ftp://ftp.gnome.org/pub/gnome/unstable/sources/gdk-pixbuf/

Para desativar o uso em Lazarus: Em Tools->Configure "Build Lazarus" adicione a opção '-dNoGdkPixBufLib' ou uma linha de comando: "make clean all OPT=-dNoGdkPixBufLib".

Eu tenho SuSE e eu recebo /usr/bin/ld: cannot find -lgtk Error: Error while linking

Suse instala os gtk devel libs em /opt/gnome/lib, que não esta no diretorio comum dos arquivos .lib. simplesmente adicione no /etc/fpc.cfg.

(-Fl/opt/gnome/lib).

Lazarus quebra com erro de runtime 211 após eu instalar um componente

Após eu ter instalado um componente, Lazarus quebra com a seguinte mensagem:

Threading has been used before cthreads was initialized.
Make cthreads one of the first units in your uses clause.
Runtime error 211 at $0066E188

Como eu posso arrumar isso?

Seu récem-instalado componente esta usando threads. Fpc em *nix não inclui automaticamente suporte à threading, mas ele pode ser inicializado. Esta inicialização se completa na unit cthreads. Todas as aplicações que usam o componente precisam adicionar esta unit para a clausula uses do programa principal. Seu Lazarus não é uma excessão. Isto pode ser feito de duas formas:

1) Modifique o fonte da ide/lazarus.pp: adicione a unit cthreads para a clausula uses, assim ele fica parecida com:

uses
  //cmem,
  cthreads, 
  {$IFDEF IDE_MEM_CHECK}
...

e recrie lazarus.

2) Afim de evitar modificar o arquivo lazarus.pp, um opção no compilador fpc pode ser usada. Desde In order to avoid modifying lazarus.pp file, a fpc compiler option could be used. Uma vez que o pacote que usa threads for compilado, abra o menu Tools->Configure "build Lazarus". O diálogo Configure "build Lazarus" deverá ser mostrado, no campo "Options:" digite -Facthreads e então pressione o botão "OK". A próxima etapa é instalar o pacote. Lazarus deverá ser criado com a opção -Facthreads a qual agirá no programa principal como se a unit cthreads fosse a primeira na clausula uses.

Dica: Talvez seu antigo (não-quebrado) executável lazarus é armazenado em lazarus.old no mesmo diretório que o executável quebrado.

Quando eu executo um program com threads eu recebeo um erro de runtime 232

A mensagem de erro completa é:

This binary has no thread support compiled in.
Recompile the application with a thread-driver in the program uses
clause before other units using thread.
Runtime error 232

Solução: Adicione cthreads como primeira unit para a sua clausula uses do seu programa principal, normalmente o arquivo .lpr.

Eu tenho Ubuntu Breezy e meus fontes em Lazarus IDE parecem muito grande

Se Lazarus é compilado com Gtk1.2, as configurações em Gnome Preferences/Font não tem nenhum efeito como eles são relatados por Gtk2. Você pode tentar essa solução Crie um arquivo nomeado .gtkrc.mine em seu diretório home (se ele já não existir ali) e adicione essas linhas para ele:

style "default-text" {
       fontset = "-*-arial-medium-r-normal--*-100-*-*-*-*-iso8859-1,\
                  -*-helvetica-medium-r-normal--*-100-*-*-*-*-*-*"
}

class "GtkWidget" style "default-text"

Como eu posso compilar um programa para Gtk2?

Até o momento, a ide compilada em Gtk2 é um pouco instável, mas você pode compilar programas para Gtk2 usando a IDE Gtk1.

Para começar, recompile LCL para Gtk2. Vá até o menu "Tools"->"Configure Build Lazarus" e ajuste a LCL para clean+build e todo o resto tudo como none.

Agora click em Ok e vá até o menu "Tools"->"Build Lazarus"

Agora você pode compilar seu programa com Gtk2 indo em Opções de Compilação e mudando o widgetset para Gtk2.

Windows

Quando eu repito a compilação, eu recebo: The name specified is not recognized as an internal or external command, operable program or batch file.>& was unexpected at this time.

No diretório do compilador existe um arquivo de script OS2 nomeado make.cmd. NT vê isto tambem como um arquivo de script, então remova porque em NT ele não é necessario.

Quando eu repito a compilação, eu recebo: make[3]: ./ppc1.exe: Command not found

Eu não sei porque mas de alguma forma make tem perdido este caminho. Tente repetir com um diretório base determinado como: make cycle BASEDIR=your_fpc_source_dir_herecompiler

Quando eu tento criar(make) Lazarus eu recebo:

make.exe: * * * interfaces: No such file or directory (ENOENT). Stop.make.exe: * * * [interfaces_all] Error 2

Você precisa atualizar o seu make..

makefile:27: *** You need the GNU utils package to use this Makefile. Stop.

Verifique se você não instalou o FPC em um caminho com espaços no nome. O Makefile não suporta isso.

Como eu posso dar a meu programa um aspecto XP como lazarus tem?

Se você tem um myprogram.exe então crie um arquivo chamado myprogram.exe.manifest e copie-cole para o arquivo isto:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity processorArchitecture="*" version="1.0.0.0" type="win32" name="myprogram"/>
<description>programom</description>
<dependency>
  <dependentAssembly>
   <assemblyIdentity
     type="win32"
     name="Microsoft.Windows.Common-Controls"
     version="6.0.0.0"
     publicKeyToken="6595b64144ccf1df"
     language="*"
     processorArchitecture="*" />
  </dependentAssembly>
  </dependency>
</assembly>

Voila! XP looks.

Quando eu executo um programa Windows criado em Lazarus ele inicia uma janela DOS

Especifique o argumento -WG (Windows GUI) na linha de comando do compilador ou no Lazarus IDE verifique a checkbox Windows GUI na caixa de dialogo compiler options (menu Project -> Compiler Options -> Linking -> target OS Specific options.

Mac OS X

Por que ao compilar um projeto falha com 'unknown section attribute: no_dead_strip'?

Inativo 'code stripping' não é suportado pelo assembler e pelo linker antes do Mac OS X 10.4.0. Desativa as opções de compilador

  • Code > Unit style > Smart linkable (-CX)
  • and Linking > Link Style > Link smart (-XX)

Licenciando

Eu posso criar aplicações comerciais com o Lazarus ?

Sim, a LCL é licenciada sob LGPL com uma exceção, que permite a você linká-la estaticamente sem lançar o fonte de sua aplicação. Modificações e otimização da LCL devem ser distribuidos com o fonte. Lazarus, o IDE, é licenciado sob a GPL.

Por que alguns componentes tem seu uso restringido em aplicações comerciais ?

Lazarus vem com componentes adiconais, que são desenvolvidos por terceiros. Esses componentes tem licenças variadas. Se você pretende usar esses componentes é preciso ver a licença nos arquivos fontes desses pacotes. Muitos desses componentes de terceiros estão no diretório "components".

Como eu sei se um Componente é parte da LCL ?

TODAS as unidades LCL estão no diretório "lcl". Uma lista de unidades pertencentes à LCL podem ser encontradas em [2]. Se seu código utilizar unidades não relacionadas nessa página, você pode estar usando um componente que não é parte da LCL.

Eu posso criar plug-ins comerciais com o Lazarus ?

Sim, o parte IDEIntf do IDE é licenciado sob a LGPL com a mesma excessão, de modo que as estruturas de dados compartilhados nesta parte, não obriguem a licença do seu plug - in ou pacote para tempo-de-design estar sob a GPL. Você é livre para escolher um plug - in de qualquer licença; não queremos limitar a sua escolha. Portanto plug-ins não-GPL compatíveis são permitidas. Note que não é permitida a distribuição de uma versão pré-compilada do Lazarus com estes plug-ins não-GPL compatível incluído estaticamente; no entanto, não vemos isso como uma grave limitação, visto que recompilar o Lazarus é fácil.

Colaboradores e Comentários

Está página foi convertida do epikwiki version.