Estou tentando criar um biblioteca, mas não estou conseguindo.
código que será a biblioteca: (minimo.c)
#include <stdio.h>
#include <stdlib.h>
#include "minimo.h"
int minimo (int nro1, int nro2)
{
if (nro1>nro2)
return (nro2);
else
return (nro1);
}
codigo do minimo.h:
/*minimo.h*/
extern int minimo (int nro1, int nro2);
codigo do programa que irá usar a função minimo.c
#include <stdio.h>
#include <conio.h>
#include "minimo.h"
int main()
{
int n1=0, n2=0;
printf ("Digite o primeiro número: ");
scanf ("%d", &n1);
printf ("Digite o segundo número: ");
scanf ("%d", &n2);
if (n1==n2)
printf ("Os números informados (%d e %d) são iguais!", n1, n2);
else
printf ("O menor número é: %d", minimo(n1,n2));
printf ("Pressione uma tecla para continuar...");
getch();
return (0);
}
O erro aparece neste código:
- [linker error] undefined reference to ‘minimo’
- ld returned 1 exit status
Como está sendo compilada a biblioteca?
Você está tendo um problema de linker. Provavelmente faltou referenciar as bibliotecas nos parâmetros do linker.
Ps: o código da sua função minimo pode ser simplificado para:
[code]
#include <stdio.h>
#include <stdlib.h>
#include “minimo.h”
int minimo (int nro1, int nro2)
{
return nro1 > nro2 ? nro2 : nro1;
}[/code]
Oi.
Estou usando o devC++. Estou compilando normal (F9). Os programas não estão em nenhum projeto. Cada um é um arquivo.
Eu começaria substituindo o devcpp pelo Code::Blocks:
http://www.codeblocks.org
Já vi muita gente bater a cabeça no devcpp, por bugs do próprio dev, ou por usarem a versão pré-histórica de MinGW que vem com ele.
Na verdade, rodei aqui e funcionou.
Vou baixar esta ferramenta e testar.
Uma biblioteca, em C, é um arquivo .lib (formato Microsoft C) ou .a (formato Unix e acho que o gcc no Windows também - não conheço o gcc no Windows para dizer se o formato é .a ou .lib mesmo).
Por acaso está sendo gerado algum desses arquivos?
[quote=enantiomero]Uma biblioteca, em C, é um arquivo .lib (formato Microsoft C) ou .a (formato Unix e acho que o gcc no Windows também - não conheço o gcc no Windows para dizer se o formato é .a ou .lib mesmo).
Por acaso está sendo gerado algum desses arquivos? [/quote]
Pode ser um conjunto de arquivos .h também.