KDevelop 3.0.x F.A.Q. (Perguntas Frequentes)
General questions
Onde consigo o KDevelop? Como o instalo?
A equipe do Kdevelop não distribui verões commpiladas do KDevelop (RPMs). Você pode encontrar RPMs em sua distribuição ou em subdiretórios de ftp.kde.org ou num dos mirrors
Veja seu site de download para informações sobre como baixar e compilar o código fonte.
Posso desenvolver aplicações comerciais com o KDevelop?
Todos e quaisquer organizações podem usar o KDevelop. Ao código gerado pode ser aplicada qualquer licensa que deseje e ao código gerado devem ser preenchidos campos de direito autorais porém para simplificar e como exemplo estes campos vem com preenchidos com a licensa GPL. Portanto você pode por sua licensa nestes campos.
Embora a licensa do Kdevelop seja GPL seu programa pode ter qualquer licensa, assim como você estivesse utilizando qualquer outro editor. O fato da licensa do Kdevelop ser GPL não implica de forma alguma que qualquer aplicação desenvolvida deva ser GPL. Você pode desenvolver aplicações comerciais com o Kdevelop.
Quando utilizando funções do KDE, bibliotecas e qualquer material livre (open source)ocê deve prestar muita atenção nas licensas destes. Para desenvolvimento de aplicações comerciais com KDE/Qt você necessita uma licensa professional da Trolltech. As biblicotecas KDE libraries são LGPL o que significa que você pode utilizar funções e lincá-las a sua aplicação. Isto é válido par as bibliotecas kdelibs, kdebase (konqueror e kcontrol etc.) e as do koffice (para desenvolvimento de aplicações para o koffice).
Mis informações estão disponíveis em KDevelop Licensing
Posso desenvolver plugins comerciais para o KDevelop?
O KDevelop inclue a biblioteca libkdeveloplgpl.so que permite o desenvolvimento de plugins comerciais. Esta biblioteca inclue as interfaces e funções do KDevelop lançadas sobre a licensa LGPL. Se você possuir uma licensa profissional da Trolltech poderá incluir a libkdeveloplgpl em seu código e lançá-lo em qualquer licensa.
Commpilei e instalei o KDevelop 3.0 mas tudo que vejo são os menus File e Help
Como em qualquer outra aplicação do KDE você deve verificar se os plugins do Kdevelop foram reconhecidos pelo KDE. Ou os instale em seu diretório do KDE (configure --prefix=/opt/kde3 for example) ou adicione o caminho do KDevelop na sua variável de ambiente KDEDIRS e reexecute "kbuildsycoca". O exemplo abaixo é a linha de comando para o bash onde o KDevelop está instalado em /home/harry/kdevelop):
export KDEDIRS=/home/harry/kdevelop:$KDEDIRS && kbuildsycoca
Como alterno entre arquivos abertos pelo teclado?
Você pode usar ALT-Left e ALT-Right para ir para o anterior e próximo arquivo aberto. Estes atalhos podem ser definidos no setup do KDevelop. Há também a abertura rápida (CTRL-SHIFT-O) e (CTRL-/) que permite digitar as primeiras letras do nome do arquivo aberto para o qual deve-se ir.
How can I enter text while debugging a console application?
The GDB window allows typing your own commands.
Como habilito code completion para bibliotecas externas?
Quando haja um projeto C/C++ aberto, vá ao menu Project->Project Settings, na caixa Project Optionsescolha C++ Specific tab, então a aba Code Completion. Pressione o botão Add Persistant Class Store e complete o wizardNew Persistant Class Store. Após completar o wizard certifique-se que a nova class store criada está ativada na lista de classes persistentes na aba Code Completion.
O script configure não encontra minha biblioteca Qt.
Use as opções
--with-qt-includes=path_to_your_qt_includes
e
--with-qt-libraries=path_to_your_qt_library
ou defina a variável de ambiente QTDIR com o diretório onde Qt está instalada
( "export QTDIR=/path/to/qt" ).
Corrigir (Patching) configure/Makefile/Makefile.in/config.h não ajuda pois após iniciar autoconf/automake/autoheader minhas correções são perdidas. Onde devo corrigir?
Há uma lista de arquivos onde você pode aplicar patchs no autotools.
Makefile.am, configure.in.in, configure.in (somente se não houver um configure.in.in)
[raramente usados: acconfig.h, configure.in.mid, configure.in.bot]
Estou desenvolvendo uma aplicação onde e necessário setar set -D options no preprocessor. Se adiciono isto nas opções do Kdeveloper tudo funciona porém quando distribuo meu pacote as opções -D setadas KDevelop não são usadas. O que faço para isto funcionar?
Edite o arquivo configure.in(.in) em seu diretório fonte superior. Aqui você
deve adicionar após a macro AC_CHECK_COMPILERS:
CPPFLAGS="$CPPFLAGS -DMYDEFINE"
e então recriar seu novo "configure" com:
"make -f Makefile.dist" e reexecutar o script confiture.
Há alguma outra possibilidade para publicar minhas definições (defines)?
Outra maneira de incluir DEFINEs em seu projeto é publicá-los
no config.h.
Para isto você deve corrigir os seguintes arquivos:
Adicione ao acconfig.h de seu diretório mais alto do projeto a linha:
#undef MYDEFINE
e insira no configure.in(.in), após a chamada da macro
AC_CONFIG_HEADER(config.h):
AC_DEFINE_UNQUOTED(MYDEFINE)
Então isto será definido no config.h após atualizar sua framework com:
"make -f Makefile.dist; configure [your options]".
Prerequisitos para esta solução:
AC_CONFIG_HEADER(config.h)
no configure.in(.in) e no sourcecode um
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
antes dos outros includes estará pronto
(normalmente isto já está feito em nosso modelo de projeto (project templates)).
Aproveitando: Uma vantagem desta solução é fazer MYDEFINE dependente em
certas situações (como a criação de uma opção para o configure).
Isto necessita é claro de escrever sua própria função de macro.
Estou desenvolvendo uma aplicação que necessita de tratamento de excessões(exception handling).
Como fazer?
Edite o arquivo configure.in(.in) de seu diretório fonte mais alto. Aqui adicione
após a macro AC_CHECK_COMPILERS():
CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS"
e após criar seu novo "configure" com
"make -f Makefile.dist" em seu diretório fonte superior e reinicie o
script configure.
Meu configure.in.in não possue nenhuma chamada AC_CHECK_COMPILERS(). Onde coloco o
CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS"
mentionado?
As novas versões do configure.in.in foram simplificadas então adicione a linha
após o AM_INIT_AUTOMAKE(<package-name>,<version>).
Estou desenvolvendo uma aplicação que necessita ser compilada com run-time-type-info.
Como fazer?
Edite o arquivo configure.in(.in) em seu diretório fonte superior. Aqui adicione após
a macro AC_CHECK_COMPILERS:
CXXFLAGS="$CXXFLAGS $USE_RTTI"
e recrie seu novo "configure" com
"make -f Makefile.dist" em seu diretório superior e reinicie o
script configure.
As soluções acima são boas porém preciso disto apenas em certo subdiretório
(ex. uma biblioteca estatica em meu projeto)
Como fazer?
Edite o arquivo Makefile.am no diretório fonte desejado. Aqui adicione
em algum lugar foraaa da área específica do KDevelop:
KDE_CXXFLAGS=$(USE_EXCEPTIONS)
Cuidado pois isto funciona apenas se seu projeto está utilizando am_edit.
(Funciona apenas para novos acinclude.m4 & am_edit, AFAWK devem ser
mais novos que 09/dez/99, Anteriormente isto era chamado APPEND_CXXFLAGS -
nesta versão do KDevelop você encontrará uma vez.)
Você deve atualizar seu Makefile-framework com
(make -f Makefile.dist; ./configure [options]).
Qual é a diferença entre CPPFLAGS e CXXFLAGS?
CPPFLAGS é usada para defines (flags usadas apenas na compilação)
CXXFLAGS é usada em chaves de compilação (ex. -frtti), que também são aplicadas no
processo de linquedição.
Tenho visto algumas soluções como corrigir Makefile.am com
DEFS+=-DMYDEFINE
e
CXXFLAGS+=-fsigned-char
e
LD_FLAGS+=-L/usr/local/lib
Porque você não as utiliza?
Há um bug no automake 1.4, o qual não adiciona as flags às já existentes
Com este comnado no Makefile.am você deve deletar os setting de
flags existentes.
Se você deseja estas flags apenas para subdiretórios use:
AM_CPPFLAGS=-DMYDEFINE
ou
AM_CXXFLAGS=-fsigned-char
ou
AM_LDFLAGS=-L/usr/local/lib
Cuidado, estas flags são apenas publicadas no automake versão 1.4.
Para setar For setar uma destas flagas no projeto todo corrija o
configure.in(.in) do diretório superior.
Como posso ter certeza que meu projeto será compilado com automake
versão 1.4?
Adicione a variável AUTOMAKE_OPTIONS ao Makefile.am de seu diretório fonte superior
com a string "1.4". Ex.:
AUTOMAKE_OPTIONS = foreign 1.4
Adicionei um subprojeto a meu projeto e ele não mais compila.
Idyo pode ocorrer se builddir != topsrcdir. Neste caso execute make distclean antes
de adicionaar o subprojeto.
Pode AM_CXXFLAGS (num Makefile.am) ser usado como flag com -frtti ou
-fexceptions?
Não! Nestes casos há um problema de ordenação. A CXXFLAGS variável padrão
publicada por acinclude.m4.in já contém uma -fno-rtti (-fno_exceptions).
Se você aplicar isto a AM_CXXFLAGS o compilador irá inserir
these flags before the CXXFLAGS, e.g. here for -frtti:
gpp ... -frtti ... -fno-exceptions -fno-rtti ......
Logo a última flag (neste caso, still -fno-rtti) serã usada.
KDE_CXXFLAGS pode ser inserida após o CXXFLAGS padrão, então
ficaria como:
gpp ..... -fno-exceptions -fno-rtti ...... -frtti...
e voilà funcione bem.
Atenção: KDE_CXXFLAGS são apenas publicadas para projetos os queis utilizam am_edit
e acinclude.m4.
Porque minha correção em configure.in(.in) com CXXFLAGS="$USE_EXCEPTIONS $CXXFLAGS" não funciona?
Veja a responsta para "Posso usar AM_CXXFLAGS (num Makefile.am)
ser usado como flags com -frtti or -fexceptions?" ;-)
Estiy usando CXXFLAGS="$USE_EXCEPTIONS" num configure.in(.in) e funciona bem,
porque deveria usar sua solução?
Se você usar sua versão antes de AC_CHECK_COMPILERS() uma chamada como
CXXFLAGS="-pedantic" ./configure
não funcionará corretamente.
Se você usar após AC_CHECK_COMPILERS() o CXXFLAGS definido em
AC_CHECK_COMPILERS() será zerado.
(Por exemplo numa chamada CXXFLAGS "configure --enable-debug" seria
alterada para inseris e debugar informação em seu código.)
Então use CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS".
Estou utilizando cabeçalhos e bibliotecas (headers e libs) adicionais em meu projeto KDE/QT.
Colocar -I/usr/include/foo nas opções de compilação e -L/usr/lib/foo nas
opções de linquedição não irá distribuir estes settings no tarball.
O que devo fazer?
Esta é a parte mais difícil de ser feita da maneira correta.
Uma maneira fácil mas incorreta é adicionar ao configure.in(.in):
all_includes="$all_includes -I/usr/include/foo"
all_libraries="$all_libraries -L/usr/lib/foo"
[o melhor lugar para isto é antes das linhas:
AC_ARG_PROGRAM
AC_OUTPUT( ..... )
no final do arquivo.]
Problemas aqui:
- Como garantir que os includes sempre estarão em
/usr/include/foo... talvez em alguns sistemas pode estar em /usr/local/foo/include
(e talvez as bibliotecas estejam em /usr/local/foo/lib)??
- Talvez eu não tenha instalado o foo-stuff então a compilação irá falhar porém seria melhor que o configure
falhasse com uma menságem mais útil.
Então para fazer isto da maneira correta você deve adicionar uma função de macro ao
configure.in(.in) a qual fará testes e procuras por um "foo" instalado.
Se você desejar nos podemos dar uma pequena dica... tente entender
a acinclude.m4.in ou criar um projeto KDE-normal-ogl, então você encontrará
então você encontrará um arquivo chamado qgl.m4 o qual será concatenado para
acinclude.m4 (veja "Makefile.dist"). Isto mostra um exemplo completo de como
procurar por QT-OpenGL-Lib. Você deve reescrever isto para seu problema específico.
Talvez você tenha sorte e encontre uma solução para seu problema em
acinclude.m4.in e utilizar uma função pronta.
Nas perguntas acima eu sempre vejo "configure.in(.in)". Eu tenho ambos arquivos
em meu projeto. Qual deve ser modificado?
Se há um configure.in.in em seu diretório mais alto do projeto modifique este arquivo.
Se não encontrar um configure.in.in modifique o configure.in.
Há algum HOWTO disponível sobre como trabalhar com dialogos do QT designer?
Sim, há um tutorial excelente em http://women.kde.org/articles/tutorials/kdevelop3/index.html
Tenho instalado o htdig porém agora está disponível o htsearch?
Por ex. Em sistemas RedHat o executável do htsearch está localizado no diretório /cgi-bin do apache.
Você pode criar links simbólicos no /usr/bin ou apenas adicionar este caminho em ~/.bashrc
Tenho a htdig, htmerge and htsearch disponíveis porém recebo uma mensagem de erro que o arquivo de configuração do htdig não pode ser encontrado ou é inválido?
Leia o README.htdig na árvore do diretório fonte e crie um arquivo htdig.conf. Então copie este arquivo
para o $KDEDIR/share/apps/kdevelop/tools. Agora crie seu índice de procura com no menu de setup do
Kdevelop.
- Onde eu baixo o KDevelop? Como instalo?
- É permitido desenvolver software comercial com o KDevelop?
- É permitido desenvolver plugins comerciais para o KDevelop?
- Eu compilei e instalei o KDevelop 3.0 porém tudo que vejo é um arquivo e o menu de Ajuda (Help)
- Como navego entre arquivos abertos com o teclado?
- Como entro texto enquanto estou debugando uma aplicação texto?
- Como posso habilitar code completion para uma biblioteca externa?
- configure script
- configure.in.in
- Meu configure.in.in não possue uma chamada AC_CHECK_COMPILERS(). Onde devo colocar o CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" mencionado acima?
- Nas perguntas acima eu sempre vejo "configure.in(.in)". Eu tenho ambos arquivos em meu projeto. Qual arquivo deve ser corrigido (patched)?
- Porque meu patch do configure.in(.in) com CXXFLAGS="$USE_EXCEPTIONS $CXXFLAGS" não funciona?
- Estou usando CXXFLAGS="$USE_EXCEPTIONS" no configure.in(.in) e parece funcionar bem. porque devo usar sua solução?
- Makefile.am
- htdig
- automake, autoconf
- rtti, run-time type information
- TrollTech's Designer and KDevelop
- others
- Corrigir (Patching) configure/Makefile/Makefile.in/config.h não resolve pois após iniciar autoconf/automake/autoheader minhas mudanças estão perdidas. Onde devo aplicar correções?
- Estou desenvolvendo uma aplicação onde pe necessário setar set -D options no preprocessor. Se adiciono isto nas opções do Kdeveloper tudo funciona porém quando distribuo meu pacote as opções -D setadas KDevelop não são usadas. O que faço para isto funcionar?
- Há alguma outra possibilidade para publicar minhas próprias definições (defines)?
- Como desenvolver aplicações que necessitam de tratamento de excessões (exception handling)?
- As soluções acima são boas porém necessito delas apenas para certo subdiretório (ex. uma bilbioteca estática de meu projeto) O que fazer?
- Estou utilizado cabeçalhos e bibliotecas (headers e libs) em meu projeto KDE/QT. Colocar -I/usr/include/foo nas opções do compilador e -L/usr/lib/foo nas opções de lincagem linker não irão distribuí-los no tarball. O que faço?
Onde consigo o KDevelop? Como o instalo?
A equipe do Kdevelop não distribui verões commpiladas do KDevelop (RPMs). Você pode encontrar RPMs em sua distribuição ou em subdiretórios de ftp.kde.org ou num dos mirrors
Veja seu site de download para informações sobre como baixar e compilar o código fonte.
Posso desenvolver aplicações comerciais com o KDevelop?
Todos e quaisquer organizações podem usar o KDevelop. Ao código gerado pode ser aplicada qualquer licensa que deseje e ao código gerado devem ser preenchidos campos de direito autorais porém para simplificar e como exemplo estes campos vem com preenchidos com a licensa GPL. Portanto você pode por sua licensa nestes campos.
Embora a licensa do Kdevelop seja GPL seu programa pode ter qualquer licensa, assim como você estivesse utilizando qualquer outro editor. O fato da licensa do Kdevelop ser GPL não implica de forma alguma que qualquer aplicação desenvolvida deva ser GPL. Você pode desenvolver aplicações comerciais com o Kdevelop.
Quando utilizando funções do KDE, bibliotecas e qualquer material livre (open source)ocê deve prestar muita atenção nas licensas destes. Para desenvolvimento de aplicações comerciais com KDE/Qt você necessita uma licensa professional da Trolltech. As biblicotecas KDE libraries são LGPL o que significa que você pode utilizar funções e lincá-las a sua aplicação. Isto é válido par as bibliotecas kdelibs, kdebase (konqueror e kcontrol etc.) e as do koffice (para desenvolvimento de aplicações para o koffice).
Mis informações estão disponíveis em KDevelop Licensing
Posso desenvolver plugins comerciais para o KDevelop?
O KDevelop inclue a biblioteca libkdeveloplgpl.so que permite o desenvolvimento de plugins comerciais. Esta biblioteca inclue as interfaces e funções do KDevelop lançadas sobre a licensa LGPL. Se você possuir uma licensa profissional da Trolltech poderá incluir a libkdeveloplgpl em seu código e lançá-lo em qualquer licensa.
Commpilei e instalei o KDevelop 3.0 mas tudo que vejo são os menus File e Help
Como em qualquer outra aplicação do KDE você deve verificar se os plugins do Kdevelop foram reconhecidos pelo KDE. Ou os instale em seu diretório do KDE (configure --prefix=/opt/kde3 for example) ou adicione o caminho do KDevelop na sua variável de ambiente KDEDIRS e reexecute "kbuildsycoca". O exemplo abaixo é a linha de comando para o bash onde o KDevelop está instalado em /home/harry/kdevelop):
export KDEDIRS=/home/harry/kdevelop:$KDEDIRS && kbuildsycoca
Como alterno entre arquivos abertos pelo teclado?
Você pode usar ALT-Left e ALT-Right para ir para o anterior e próximo arquivo aberto. Estes atalhos podem ser definidos no setup do KDevelop. Há também a abertura rápida (CTRL-SHIFT-O) e (CTRL-/) que permite digitar as primeiras letras do nome do arquivo aberto para o qual deve-se ir.
How can I enter text while debugging a console application?
The GDB window allows typing your own commands.
Como habilito code completion para bibliotecas externas?
Quando haja um projeto C/C++ aberto, vá ao menu Project->Project Settings, na caixa Project Optionsescolha C++ Specific tab, então a aba Code Completion. Pressione o botão Add Persistant Class Store e complete o wizardNew Persistant Class Store. Após completar o wizard certifique-se que a nova class store criada está ativada na lista de classes persistentes na aba Code Completion.
O script configure não encontra minha biblioteca Qt.
Use as opções
--with-qt-includes=path_to_your_qt_includes
e
--with-qt-libraries=path_to_your_qt_library
ou defina a variável de ambiente QTDIR com o diretório onde Qt está instalada
( "export QTDIR=/path/to/qt" ).
Corrigir (Patching) configure/Makefile/Makefile.in/config.h não ajuda pois após iniciar autoconf/automake/autoheader minhas correções são perdidas. Onde devo corrigir?
Há uma lista de arquivos onde você pode aplicar patchs no autotools.
Makefile.am, configure.in.in, configure.in (somente se não houver um configure.in.in)
[raramente usados: acconfig.h, configure.in.mid, configure.in.bot]
Estou desenvolvendo uma aplicação onde e necessário setar set -D options no preprocessor. Se adiciono isto nas opções do Kdeveloper tudo funciona porém quando distribuo meu pacote as opções -D setadas KDevelop não são usadas. O que faço para isto funcionar?
Edite o arquivo configure.in(.in) em seu diretório fonte superior. Aqui você
deve adicionar após a macro AC_CHECK_COMPILERS:
CPPFLAGS="$CPPFLAGS -DMYDEFINE"
e então recriar seu novo "configure" com:
"make -f Makefile.dist" e reexecutar o script confiture.
Há alguma outra possibilidade para publicar minhas definições (defines)?
Outra maneira de incluir DEFINEs em seu projeto é publicá-los
no config.h.
Para isto você deve corrigir os seguintes arquivos:
Adicione ao acconfig.h de seu diretório mais alto do projeto a linha:
#undef MYDEFINE
e insira no configure.in(.in), após a chamada da macro
AC_CONFIG_HEADER(config.h):
AC_DEFINE_UNQUOTED(MYDEFINE)
Então isto será definido no config.h após atualizar sua framework com:
"make -f Makefile.dist; configure [your options]".
Prerequisitos para esta solução:
AC_CONFIG_HEADER(config.h)
no configure.in(.in) e no sourcecode um
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
antes dos outros includes estará pronto
(normalmente isto já está feito em nosso modelo de projeto (project templates)).
Aproveitando: Uma vantagem desta solução é fazer MYDEFINE dependente em
certas situações (como a criação de uma opção para o configure).
Isto necessita é claro de escrever sua própria função de macro.
Estou desenvolvendo uma aplicação que necessita de tratamento de excessões(exception handling).
Como fazer?
Edite o arquivo configure.in(.in) de seu diretório fonte mais alto. Aqui adicione
após a macro AC_CHECK_COMPILERS():
CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS"
e após criar seu novo "configure" com
"make -f Makefile.dist" em seu diretório fonte superior e reinicie o
script configure.
Meu configure.in.in não possue nenhuma chamada AC_CHECK_COMPILERS(). Onde coloco o
CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS"
mentionado?
As novas versões do configure.in.in foram simplificadas então adicione a linha
após o AM_INIT_AUTOMAKE(<package-name>,<version>).
Estou desenvolvendo uma aplicação que necessita ser compilada com run-time-type-info.
Como fazer?
Edite o arquivo configure.in(.in) em seu diretório fonte superior. Aqui adicione após
a macro AC_CHECK_COMPILERS:
CXXFLAGS="$CXXFLAGS $USE_RTTI"
e recrie seu novo "configure" com
"make -f Makefile.dist" em seu diretório superior e reinicie o
script configure.
As soluções acima são boas porém preciso disto apenas em certo subdiretório
(ex. uma biblioteca estatica em meu projeto)
Como fazer?
Edite o arquivo Makefile.am no diretório fonte desejado. Aqui adicione
em algum lugar foraaa da área específica do KDevelop:
KDE_CXXFLAGS=$(USE_EXCEPTIONS)
Cuidado pois isto funciona apenas se seu projeto está utilizando am_edit.
(Funciona apenas para novos acinclude.m4 & am_edit, AFAWK devem ser
mais novos que 09/dez/99, Anteriormente isto era chamado APPEND_CXXFLAGS -
nesta versão do KDevelop você encontrará uma vez.)
Você deve atualizar seu Makefile-framework com
(make -f Makefile.dist; ./configure [options]).
Qual é a diferença entre CPPFLAGS e CXXFLAGS?
CPPFLAGS é usada para defines (flags usadas apenas na compilação)
CXXFLAGS é usada em chaves de compilação (ex. -frtti), que também são aplicadas no
processo de linquedição.
Tenho visto algumas soluções como corrigir Makefile.am com
DEFS+=-DMYDEFINE
e
CXXFLAGS+=-fsigned-char
e
LD_FLAGS+=-L/usr/local/lib
Porque você não as utiliza?
Há um bug no automake 1.4, o qual não adiciona as flags às já existentes
Com este comnado no Makefile.am você deve deletar os setting de
flags existentes.
Se você deseja estas flags apenas para subdiretórios use:
AM_CPPFLAGS=-DMYDEFINE
ou
AM_CXXFLAGS=-fsigned-char
ou
AM_LDFLAGS=-L/usr/local/lib
Cuidado, estas flags são apenas publicadas no automake versão 1.4.
Para setar For setar uma destas flagas no projeto todo corrija o
configure.in(.in) do diretório superior.
Como posso ter certeza que meu projeto será compilado com automake
versão 1.4?
Adicione a variável AUTOMAKE_OPTIONS ao Makefile.am de seu diretório fonte superior
com a string "1.4". Ex.:
AUTOMAKE_OPTIONS = foreign 1.4
Adicionei um subprojeto a meu projeto e ele não mais compila.
Idyo pode ocorrer se builddir != topsrcdir. Neste caso execute make distclean antes
de adicionaar o subprojeto.
Pode AM_CXXFLAGS (num Makefile.am) ser usado como flag com -frtti ou
-fexceptions?
Não! Nestes casos há um problema de ordenação. A CXXFLAGS variável padrão
publicada por acinclude.m4.in já contém uma -fno-rtti (-fno_exceptions).
Se você aplicar isto a AM_CXXFLAGS o compilador irá inserir
these flags before the CXXFLAGS, e.g. here for -frtti:
gpp ... -frtti ... -fno-exceptions -fno-rtti ......
Logo a última flag (neste caso, still -fno-rtti) serã usada.
KDE_CXXFLAGS pode ser inserida após o CXXFLAGS padrão, então
ficaria como:
gpp ..... -fno-exceptions -fno-rtti ...... -frtti...
e voilà funcione bem.
Atenção: KDE_CXXFLAGS são apenas publicadas para projetos os queis utilizam am_edit
e acinclude.m4.
Porque minha correção em configure.in(.in) com CXXFLAGS="$USE_EXCEPTIONS $CXXFLAGS" não funciona?
Veja a responsta para "Posso usar AM_CXXFLAGS (num Makefile.am)
ser usado como flags com -frtti or -fexceptions?" ;-)
Estiy usando CXXFLAGS="$USE_EXCEPTIONS" num configure.in(.in) e funciona bem,
porque deveria usar sua solução?
Se você usar sua versão antes de AC_CHECK_COMPILERS() uma chamada como
CXXFLAGS="-pedantic" ./configure
não funcionará corretamente.
Se você usar após AC_CHECK_COMPILERS() o CXXFLAGS definido em
AC_CHECK_COMPILERS() será zerado.
(Por exemplo numa chamada CXXFLAGS "configure --enable-debug" seria
alterada para inseris e debugar informação em seu código.)
Então use CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS".
Estou utilizando cabeçalhos e bibliotecas (headers e libs) adicionais em meu projeto KDE/QT.
Colocar -I/usr/include/foo nas opções de compilação e -L/usr/lib/foo nas
opções de linquedição não irá distribuir estes settings no tarball.
O que devo fazer?
Esta é a parte mais difícil de ser feita da maneira correta.
Uma maneira fácil mas incorreta é adicionar ao configure.in(.in):
all_includes="$all_includes -I/usr/include/foo"
all_libraries="$all_libraries -L/usr/lib/foo"
[o melhor lugar para isto é antes das linhas:
AC_ARG_PROGRAM
AC_OUTPUT( ..... )
no final do arquivo.]
Problemas aqui:
- Como garantir que os includes sempre estarão em
/usr/include/foo... talvez em alguns sistemas pode estar em /usr/local/foo/include
(e talvez as bibliotecas estejam em /usr/local/foo/lib)??
- Talvez eu não tenha instalado o foo-stuff então a compilação irá falhar porém seria melhor que o configure
falhasse com uma menságem mais útil.
Então para fazer isto da maneira correta você deve adicionar uma função de macro ao
configure.in(.in) a qual fará testes e procuras por um "foo" instalado.
Se você desejar nos podemos dar uma pequena dica... tente entender
a acinclude.m4.in ou criar um projeto KDE-normal-ogl, então você encontrará
então você encontrará um arquivo chamado qgl.m4 o qual será concatenado para
acinclude.m4 (veja "Makefile.dist"). Isto mostra um exemplo completo de como
procurar por QT-OpenGL-Lib. Você deve reescrever isto para seu problema específico.
Talvez você tenha sorte e encontre uma solução para seu problema em
acinclude.m4.in e utilizar uma função pronta.
Nas perguntas acima eu sempre vejo "configure.in(.in)". Eu tenho ambos arquivos
em meu projeto. Qual deve ser modificado?
Se há um configure.in.in em seu diretório mais alto do projeto modifique este arquivo.
Se não encontrar um configure.in.in modifique o configure.in.
Há algum HOWTO disponível sobre como trabalhar com dialogos do QT designer?
Sim, há um tutorial excelente em http://women.kde.org/articles/tutorials/kdevelop3/index.html
Tenho instalado o htdig porém agora está disponível o htsearch?
Por ex. Em sistemas RedHat o executável do htsearch está localizado no diretório /cgi-bin do apache.
Você pode criar links simbólicos no /usr/bin ou apenas adicionar este caminho em ~/.bashrc
Tenho a htdig, htmerge and htsearch disponíveis porém recebo uma mensagem de erro que o arquivo de configuração do htdig não pode ser encontrado ou é inválido?
Leia o README.htdig na árvore do diretório fonte e crie um arquivo htdig.conf. Então copie este arquivo
para o $KDEDIR/share/apps/kdevelop/tools. Agora crie seu índice de procura com no menu de setup do
Kdevelop.
Esta página foi atualizada em: Sáb 20 Ago 2005 21:41:03 CEST
Tradução Português do Brasil mantida por Sergio BacchiSe tiver problemas com esta página, por favor contate o webmaster.
