Para configurar a SDL no Linux vamos primeiro baixar a LibSDL. A maioria das distribuições incluem a libsdl nos seus repositórios. No caso do Gentoo basta usar, como root:
emerge libsdl
Já no Ubuntu, usamos:
apt-get install libsdl1.2-dev
Para o Fedora e o Debian há um link na página de downloads da SDL. Baixe as Development Libraries.
Caso você não consiga encontrar um pacote nos repositórios da sua distribução, terá de baixar e compilar os fontes. Infelizmente, nesta tarefa não poderei ajudar, mas não deve ser muito complicado.
Iremos agora ver como compilar pelo Anjuta e no shell.

Anjuta
- Abra o Anjuta e crie um novo projeto indo em File/New Project;
- No wizard, escolha Generic/Terminal Project;
- Nesta tela só precisamos nos preocupar na opção Programming Language, que deve estar em C++;
- Quando o wizard terminar de configurar o nosso projeto, vá em Settings/Compiler and Linker Settings;
- Na orelha Libraries, escreva SDL no campo de texto e clique em Add. Feche esta janela;
- Irá aparecer uma caixa de diálogo, clique em Yes.
Pronto, seu Anjuta está configurado corretamente. Siga até o final deste artigo e tente compilar o programa-teste para checar se está tudo certo.

Shell
- Compile usando
g++ -o programa programa.cpp -lSDL
Para testar se a configuração está funcionando, tente compilar o seguinte programa:
1 2 3 4 5 6 7 8 9 10 11 12 | // Inclui o header da SDL #include "SDL/SDL.h" int main(int argc, char* args[]) { // Inicia todos os subsistemas da SDL SDL_Init(SDL_INIT_EVERYTHING); // Destrói a SDL SDL_Quit(); return 0; } |
Ele deve compilar sem erros, abrir uma tela e, quase que instantâneamente, fechá-la. Se tudo ocorreu como o esperado, ótimo! Se não, volte e refaça todos os passos, cheque se a SDL está instalada no diretório padrão e, se mesmo assim não funcionar, procure seu problema no FAQ oficial para o Linux ou escreva um comentário aqui que tentarei ajudar.
No próximo artigo irei explicar como configurar a SDL no Windows. Até mais.
Posts relacionados:
1 comment so far ↓
Olá, amigo!
Acredite: eu não gosto de perguntar. Fazem muitos anos que eu pergunto em internet e de vez em quando ainda recebo respostas duras.
Porém, visto que já tentei de tudo e não achei a solução para o meu problema, decidi atormentar a vida de alguém.
Levando este código em consideração: http://codepad.org/F9xchXHg
Você seria capaz de me explicar porque a saída é esta:
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start’:
(.text+0×18): undefined reference to `main’
collect2: ld returned 1 exit status
?
Isso, usando GNU/GCC, Linux Ubuntu.
Minha IDE é a NetBeans, mas tanto faz linha de comando ou IDE.
Tem coisas que nem o google responde.
Agradeço.
Muita paz.
Leave a Comment