Mesmo que você seja daqueles que não abre mão de uma IDE (Ambiente de Desenvolvimento Integrado), seria muito interessante saber o que está rolando a nível de compilador. # gcc -o hello_world hello_world.c 08: #include "funcoes.h" 06: #ifndef funcoes_H 06: #include "funcoes.h" # gcc -o main.o -c main.c # gcc main.o funcoes.o -o projeto # gcc -o main.o -c main.c # gcc -o funcoes.o -c funcoes.c # gcc -o main.o -c main.c 05: OBJS=main.o funcoes.o # make funcoes.o # make projeto
Uma IDE serve para agilizar um projeto, mas dependendo do nível de entendimento do programador ela pode fazer papel de mascaradora, ocultando todos os passos que são necessários para se compilar um projeto.
» Post Completo...*** GCC ***
O GCC (GNU Compiler Collection) é o compilador padrão de c.
Para compilar um código no gcc você faz da seguinte forma:
Muito simples, mas esse uso simplificado compila não mais do que um hello_world ! Pois um projeto possui mais arquivos e passos diferentes de compilação.
É recomendado, quando se tem um projeto maior, o uso de vários arquivos (*.h e *.c) para que se tenha uma maior organização.
*** Lincando OBJ'S ***
Imagine o seguinte projeto:
main.c - Possui a função main e o código de interação com o usuário.
10: int main(void){
--: ...
16: return 0;
17: }
07: #define funcoes_H
09: #include <math.h>
11: float areaRetangulo(float base,float altura);
12: float areaCirculo(float raio);
14: #endif
08: float areaRetangulo(float base,float altura){
09: return base*altura;
10: }
12: float areaCirculo(float raio){
13: return 2*M_PI*raio;
14: }
Primeiro vamos criar os obj's (*.obj ou *.o), que são um tipo de código intermediário.
# gcc -o funcoes.o -c funcoes.c
Por exemplo, o que seria necessário se eu alterar o código do:
# gcc main.o funcoes.o -o projeto
# gcc main.o funcoes.o -o projeto
# gcc -o funcoes.o -c funcoes.c
# gcc main.o funcoes.o -o projeto
Makefile é apenas o nome do arquivo que o comando make utiliza para compilar o seu projeto.
Imagine o Makefile como um arquivo shell script com a vantagem extra de resolver problemas de dependência de arquivos.
Para compilar nosso projeto nós vamos escrever o Makefile da seguinte maneira:
07: all: projeto
09: projeto: $(OBJS)
10: gcc $(OBJS) -o $@
12: main.o: main.c
13: gcc -c main.c -o main.o
15: funcoes.o: funcoes.c
16: gcc -c $< -o $@
Pode parecer estranho, mas a linhas 13 e 16 fazem praticamente a mesma coisa.
Para compilar o arquivo funcoes.c basta usar o comando:
2. Caso funcoes.c seja mais recente que funcoes.o ele irá executar o código logo abaixo (O TAB no começo da linha é obrigatório).
Para compilar o projeto você pode usar um dos 3 comandos:
# make all
# make
Não achou estranho eu usar #ifndef, #define e #endif no arquivo funcoes.h ?!
Estes comandos são chamados diretivas de compilação e são interpretadas pelo pré-processador. É o código antes do código.
Com #define podemos incluir um arquivo em outro, e com #ifndef e #endif criamos um bloco condicional.
Entendendo melhor, não podemos declarar o escopo de uma função mais de uma vez, e quando incluímos um arquivo *.h mais de uma vez é exatamente isto que ocorre.
No nosso exemplo, a diretiva #ifndef serve para garantir que o escopo das funções só sejam incluídos em em arquivo caso a #define não exista. A #define passa a existir logo em seguida e o bloco é finalizado em #endif.
*** Arquivos ***
*** LINK'S ***
.:: Menu Rápido ::.
Linux | C/C++ | Downloads | SDL | [×]A melhor maneira de se descobrir uma lib gratuita é nos repositórios do Ubuntu: $apt-cache search lib <palavra_chave> dev
Ou pelo devpaks.org, mas o repositório tem me ajudado mais !!!
- Script's GIMP - Python-Fu !!!
- Dicas Web
- Vídeo Compiz Fusion (Desktop 3D)
- Compilando com gcc e Makefile
- Que tal mudar para Ubuntu ?!
- SDL - A Biblioteca dos Jogos 2D
- Analisador léxico de arquivos script
- Simpatizando com a Libxml2
- AsciiGen - Tabela ASCII em C
- Conexão com API C do MySQL
- Compilando com gcc e Makefile
- DR Tetris 0.3 - Tetris no estilo tradicional !
- DR Quebra-Cabeça disponível para download !!!
- Freeggs - Liberdade aos ovos \o/
Se você quer aprender a programar jogos... SDL !!!
- Carregando mapas 2D no formato TMX
- Controle de tempo e Frame Rate
- SDL em Processamento de Imagens
- SDL_Surface - Introdução detalhada
- Imprimindo texto com SDL_Ttf
- SDL_Collide - Colisão 2D para jogos
- Tocando música e sons com SDL_mixer
- Gerando e carregando mapas 2D em jogos
- SDL - A Biblioteca dos Jogos 2D
quarta-feira, 26 de setembro de 2007
Compilando com gcc e Makefile
Mesmo que você seja daqueles que não abre mão de uma IDE (Ambiente de Desenvolvimento Integrado), seria muito interessante saber o que está rolando a nível de compilador.
Uma IDE serve para agilizar um projeto, mas dependendo do nível de entendimento do programador ela pode fazer papel de mascaradora, ocultando todos os passos que são necessários para se compilar um projeto.
» Post Completo...
Postado por Diogo_RBG 2 comentários
terça-feira, 25 de setembro de 2007
Que tal mudar para Ubuntu ?!
Ubuntu - Linux para seres humanos !!!
Neste post eu estarei apenas apresentando o Ubuntu, e não estarei discutindo sobre configurações ou comandos.
Serve de apoio a iniciantes do Linux e usuários exaustos de outras distribuições.
» Post Completo...*** Adaptação Linux ***
Mudar de Windows para Linux é difícil, e mesmo que a mudança seja para muito melhor ainda é uma mudança.
Quem já aprendeu a usar a maioria dos programas do Windows sente muita dificuldade em utilizar os programas do Linux.
Uma boa maneira de mudar para Linux sem muitos traumas é experimentar os programas para Linux, que boa parte também estão disponíveis para Windows.
Os principais são:
Firefox (Internet Explorer), OpenOffice (Word, Excel, Power Point...), Kpdf (Adobe Reader), GIMP (Photoshop), Inkscape (Corel Draw), Blender (3DsMax), aMSN (MSN), aMule (eMule), XMMS (Winamp), kaffeine (Media Player), K3b (Nero).
O Linux já possui uma infinidade de programas para tudo que se possa imaginar e todos eles são livre (freeware) ou de código aberto (opensource).
Mais programas interessantes:
Google Earth (Visualisador de mapas por satélite) - Muito legal !
VMware Player (Máquina virtual para sistemas operacionais) - Uso ele para rodar o XP dentro do Linux !
*** Suporte Ubuntu (Repositório) ***
O Linux é bom, mas muitos deles se dedicam a usuários experientes.
Algumas das melhores distribuições linux para Desktop são: Ubuntu, Fedora, Kurumin, Suse... (Não sei de muitas !)
O que não se discute é que o Ubuntu tem um suporte muito grande e bombou em todas as pesquisas.
Instalar um programa é muito mais fácil que no windows (Não estou exagerando !). O Ubuntu tem uma coisa que outros SOS ainda nem sonharam... O repositório (Viva o repositório lol !!!).
Imagine instalar um programa sem nem mesmo ter que baixá-lo manualmente da Internet ! Quando você baixa um programa da Internet você está correndo o risco de instalar um vírus ou um programa malicioso.
O repositório é um servidor de programas. A equipe Ubuntu copia os melhores programas da Internet e coloca em seu servidor para garantir que você não baixe o mesmo programa de um outro local (não oficial) que tenha sido alterado para infectar seu PC.
Para instalar um programa no Ubuntu basta usar o programa [Adicionar/Remover]. Nele você pode procurar um programa e instalar sem se preocupar com configurações ou dependências. Adicionar/Remover é apenas uma alternativa gráfica para o comando # apt-get install 'programa' (assunto para outro post).
Outra coisa que você irá perceber é um ícone bem no cantinho da barra.
O Ubuntu além de instalar programas por você ele também os mantém atualizados.
Sempre que aparecer um ícone no canto da barra é porque o Ubuntu encontrou novas atualização do próprio sistema ou de programas que você está usando.
A única coisa que você deve fazer é clicar no ícone e digitar a senha de root (a mesma senha do usuário que você criou na instalação).
[Atualizador 01]
[Atualizador 02]
*** Ubuntu 7.04 ***
A versão 7.04 (ano 7 e mês 04) pode ser baixada do site oficial ou pegar uma cópia comigo. É um LiveCd, roda sem instalar, mas você só verá o desempenho se instalar no seu PC.
Sobre a instalação quero destacar duas coisas:
*** Kubuntu (Ubuntu e KDE) ***
O padrão do Ubuntu é o modo gráfico Gnome. Ele não é exatamente o que um usuário deseja, mas você pode turbinar o seu Ubuntu com o Kubuntu. [Meu desktop Kubuntu]
Kubuntu (KDE + Ubuntu). O KDE é um gerenciador de janelas com mais recursos visuais. Ele não é padrão do Ubuntu por não ser totalmente gratuito... que pena !
Para você deixar o seu Ubuntu com cara de Kubuntu basta digitar o seguinte comando (O Ubuntu não deixou de ser Linux !):
Abra o console e digite (sem a '#' no começo):
*** Mais vantágens de usar Linux ***
*** Links ***
---
O primeiro post foi sobre o Ubuntu, o próximo talvez seja sobre programação !
Postado por Diogo_RBG 0 comentários
segunda-feira, 24 de setembro de 2007
Inalguração do Portal C++ no estilo blog
Não estou aposentando o meu site, mas um blog é mais rápido e prático para divulgar minhas idéias.
Agora eu posso dar suporte a todos aqueles que se interessam por c++ sem ter que me preocupar com php, html, servidor...
O meu site funcionou por 2 meses e parou por 1 ano ! Mas agora as coisas vão mudar !
Postado por Diogo_RBG 0 comentários
Tópicos: inalguração