Ir ao conteúdo
  • Cadastre-se
Leticia F

RESOLVIDO Problemas na compilação de um código em C

Recommended Posts

Oi pessoal.

Tô tentando compilar um programa que usa biblioteca de C e Allegro mas sempre me aparece o erro: "(...)main.c: undefined reference to 'WinMain@16'

     collect2: ld returned 1 exit status"

 

 

Não é a primeira vez que aparece o WinMain@16, também aparecia quando eu tentava compilar códigos com biblioteca de SDL!

 

E, eu ainda tô aprendendo a usar Allegro. Por isso, uso códigos pra me basear. Nesse código, fiz muito parecido com um código que eu encontrei em um site e consegui compilar sem problemas.

#include <stdio.h>#include <allegro.h>#define MAXI 800#define MAY 600int main(){	allegro_init();	install_keyboard();	set_color_depth(8);	set_gfx_mode(GFX_AUTODETECT_WINDOWED, MAXI, MAY, 0, 0);	allegro_message("HELLO!");		return 0;}END_OF_MAIN;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é porque o compilador não está achando o a biblioteca para poder criar o link.

Tente passar o parâmetro -lallegro no momento da compilação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continua dando o mesmo erro.

Se não tivesse achando a biblioteca, os outros códigos que eu compilei dariam o mesmo problema, certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi.

Será que eu deveria colocar o .dll na mesma pasta que os meus arquivos .c ou colocar naquelas variáveis de ambiente o caminho do .dll?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente colocar no diretório onde está o seu código. Se não me engano é um lugar padrão que o compilador faz a busca.

Ou então, utilize o parâmetro -L"<diretório/da/lib>" (sem espaços entre a flag e o caminho. ex: -L"C:/diretorio/da/lib/allegro"), para definir a pasta a ser buscada pelo parâmetro -lallegro.

 

Mais informações podem ser encontrada em Options for Directory Search do GCC.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se ainda nao resolveu com as dicas do ScreenBlack,ve só se END_OF_MAIN ta definido,se nao tiver,usa END_OF_MAIN() ou então define END_OF_MAIN no começo do arquivo(antes de incluir o allegro.h)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×