Linguagem C - criando uma biblioteca. Onde esta o erro?

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.