|
|||||||
| Wiki | Classificados | Galeria | Reviews | Jogos | Grupos Sociais | RSS Feeds | FAQ | Termos de Uso | Sobre |
| Registrar | Fotos | Membros | Calendário | Pesquisar | Postados Hoje | Marcar Fóruns Como Lidos |
Quer ver menos banners de publicidade ? Entao Cadastre-se!
![]() |
|
|
LinkBack | Ferramentas do Tópico |
|
|
#1 (permalink) |
|
magnux <ativista@gmail.com> "Keep it simple, stupid"
Compilando com gcc, g++ Definitivo Agora você poder compliar seus programas e exploit's no *nix, sem nenhum problema, usando o GCC. O gcc/g++ o compilador C/C++ da GNU. Pode ser baixado no site da GNU individualmente, ou como parte do pacote do EGCS (que inclue um conjunto de programas acessórios). Proto os protdo gcc/g++: g++ [opções] [parâmetros] arquivos. -v Mostra detalhes da compilação. -wall Mostra todos os warnings. -onome Define o nome do arquivo de saída (opcional). -w Elimina mensagens de warning. -I/path Acrescenta path include. -l/path/lib Inclue biblioteca (lib). -ggdb Informações extras para o gdb. -O Optimiza o código (-O1,-O2,-O3). -c Somente compila (gera o arquivo *.o). -S Somente compila o arquivo, não linka. -lcomplex Inclue biblioteca dos complexos. -lm Inclue biblioteca matemática. -E Cria somente o arquivo pré-processado. -C Não inclue comentários no executável. -g Gera informações para o debuger (código lento). Arquivos gerados pelo gcc/g++ -qdigraph Adiciona teclas dígrafas. -qcompact Deixa o código mais compacto. -xlinguagem Expecfica a linguagem (C, C++,assembler). -p Informações para o profiler proff. -pg Informações para o gro_. -m686 Especifica que a máquina alvo é um 686. -static Especifica que a linkagem deve ser esttica. -p Especifica inclusão de instruções para o profiler. -pg Especifica inclusão de instruções para o profiler da gnu (gprof ). A medida q os arquivos são compilados e linkados, são gerados alguns arquivos adicionais. Lista-se a seguir os arquivos de entrada (*.h, *.cpp), e os arquivos de saída gerados pelo g++. *.h Arquivos header. *.i Arquivos de pr-processamento para programas em C. *.ii Arquivos de pr-processamento para programas em C++. .c,.cc,.C,.c++,.cpp, Arquivos de fonte. .o Arquivo objeto. .s Arquivo assembler. .a Arquivo de biblioteca estáticas. .sa Blocos de bibliotecas estáticas linkados ao programa. .so.n Arquivo de biblioteca dinmica. a.out Arquivo de saída (executável). Exemplo de uso do gcc/g++ Exemplo basico: 1. Edita o programa greenpeace.cpp com o emacs. Abra um terminal e execute emacs greenpeace.cpp Código:
#include <iostream>
using namespace std;
main()
{
cout << "Green-Peace!" << endl;
}
/*No emacs use ctrl+x ctrl+s para salvar o arquivo
e ctrl+x ctrl+q para sair do emacs*/
g++ -E greenpeace.cpp 3. Compila o módulo hello (gera o greenpeace.o) g++ -c greenpeace.cpp 4. Linka o programa e gera o executavel g++ -ohello greenpeace.o 5. Executa o programa ./greenpeace 6. Observe que os passos 2,3 e 4 podem ser executados usando: g++ -v -ogreenpeace greenpeace.cpp O -v Mostra um conjunto de informações a respeito dos passos da compilação. Neste exemplo o nome do programa executável é greenpeace e foi especificado com a opção -ogreenpeace. Se você não especificar um nome, o programa executável se chamará a.out. Tarefa: Compare o tamanho dos códigos (dos executáveis) gerados com as opções: g++ greenpeace.cpp #comun g++ -g2 greenpeace.cpp #com debuger g++ -o3 greenpeace.cpp #com otimização Situções: Antes de compilar no windows e no linux windows nome.h/nome.cpp linux nome.h/nome Depois de compilar windows nome.obj linux nome.o Depois de linkar windows nome.exe linux nome Ferramentas para programar no linux _ kylix http://www.borland.com/kylix/index.html. Ambiente com uso da biblioteca VCL (Visual Class Library). _ Code Warrior Metroworks, ambiente com uso da biblioteca code warrior (?). _ kdevelop http://www.kdevelop.org/ ambiente completo com uso da biblioteca qt ou kde. _ qt http://www.trolltech.com, para o desenho de interfaces grficas usando a biblioteca QT. _ glade http://glade.gnome.org/ q utiliza o tolkit do gtk++ http://www.gtk.org/. _ dev C++ http://www.bloodshed.net/dev/, ambiente visual pequeno e simples de usar, usa as ferramentas da GNU.. _ Source navigator http://sources.redhat.com/sourcenav/ . _ Sistema GNU (g++, make, automake, autoconf, libtool). Podem-se desenvolver os programas Com editores de texto simples e usar o make para compilação automatizada. Tem o cvs para controle de versões. Observe que usar o sistema GNU garante uma maior portabilidade e uniformidade no desenvolvimento de seus programas, pois está presente em praticamente todas as plataformas. Quem programa no linux deve saber onde fica o diretório com os programas do sistema e onde ficam localizadas as bibliotecas: /usr/bin programas do sistema /usr/local/bin programas locais /usr/include arquivos include /urs/lib bibliotecas /usr/openwin/lib bibliotecas do X windows Programas ulteis para desenvolvimento de software no linux. Programas utilitrios Ambientes de desenvolvimento Ambiente para desenvolvimento no KDE = kdevelop Ambiente de desenvolvimento semelhante ao Borland = xwpe Ambiente para desenvolvimento no GNOME = glade Editor de texto Editor de texto simples = emacs Compiladores Compilador C da GNU = gcc Compilador C++ da GNU g++ Compilação automatizada = make Linkagem = ld Depuração Depurador C da GNU = gdb Depurador do KDE (kdevelop) = kdbg Programas GNU = Compliant Geração dos scripts de configuração = autoconf Geração dos scripts Makefile = automake Pacote de geração de bibliotecas = libtool Programas Diversos Traça informações, chamadas a bibliotecas = ltrace Controle de versões CVS Formatação do código Diferenças entre arquivos = diff Formata o código = bison Organiza o código (layout) = indent Analisador léxico = fex,fex++ Documentação Gera documentação a partir de tags no código. = doxygen Geração de diagramas de classes = graphviz Manipulação binária = bfd Binary _le descriptor = binutil Pro_le (analizador de desempenho) = gprof Montagem de bibliotecas = ar Índices das bibliotecas = ranlib Informações sobre objetos = objdump Veja abaixo algumas extenções que você pode encontrar no GCC : gcc-g77 ( Suporte para Fortran ) gcc-gnat (Suporte para Ada ) gcc-java (Suporte para Java ) gcc-objc (Suporte para Objective-C ) |
![]() Registrado em: Mar 2006
Posts: 2
Agradeceu: 0
Agradecido 0 vez(es) em 0 Posts
Reputação: 0
![]() |
|
|
|
|
#2 (permalink) |
|
Cara. Posta isso como tutorial. De preferencia no wiki também. O texto está massa.
__________________
www.whitetiger.com.br |
![]() |
|
|
![]() |
| Ferramentas do Tópico | |
|
|
Tópicos Similares
|
||||
| Tópico | Tópico Iniciado Por | Fórum | Respostas | Última Mensagem |
| Guia basico e definitivo: Autenticacao Squid NCSA. | iknow | Proxy/NAT/Firewall | 3 | 11-12-2006 14:21 |
| Compilando no g++ | mfernandes | Programação | 1 | 14-10-2005 12:09 |
| Compilando | serhumano | Iniciantes | 0 | 19-09-2005 20:32 |
| Compilando o PHP 4.3.8 | CFRInformatica | Programação | 3 | 09-09-2004 09:51 |
| compilando squid | Proxy/NAT/Firewall | 0 | 16-04-2003 11:48 | |