[C] creare lib statiche con DEVC++

di il
3 risposte

[C] creare lib statiche con DEVC++

Per oregon si sono sempre io! XD
Allora non ho ancora studiato questo argomento in classe ma mi interessa molto:
vorrei creare una libreria statica con le mie funzioni usando il buon vecchio e buggato dev c++
allora io ho fatto i miei bei file lib.h e lib.c. La libreria viene compilata con successo solo che nel programma principale mi da errore il compilatore ovvero: [Linker error] undefined reference to `start_pos' .
Io nel programma ho messo #include "lib.h" e nel main ho chiamato la funzione messa nella libreria.
Dovrebbe essere giusto in teoria.

File lib.h
#ifndef LIB
#define LIB

void start_pos(void);

#endif
File lib.c :
#include "lib.h"
#include <stdlib.h>
#include <windows.h>
#include <stdio.h>

void GotoXY(int x, int y)
{
    COORD CursorPos = {x, y};
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hConsole, CursorPos);
}

void start_pos(void)
{
     int x = 25;
     int y = 25;
     int i;
     for(i=0;i<3;i++);
     {
         GotoXY(x, y);
         putch('X');
     }
}
File principale:
#include <stdio.h>
#include <stdlib.h>
#include "lib.h"

int main(int argc, char *argv[])
{
  start_pos();
  system("PAUSE");	
  return 0;
}

3 Risposte

  • Re: [C] creare lib statiche con DEVC++

    Non è un errore di compilazione ma di linker. Hai aggiunto il tuo file .lib nelle proprietà del linker?
    p.s.: Se era una chiamata solo per oregon mi ritiro
  • Re: [C] creare lib statiche con DEVC++

    Devi aggiungere la libreria al progetto (nelle opzioni --- linker) che stai compilando.

    Il file in questione, nel caso di DevC++ si chiamerà

    lib.a



    ( skynet ... figurati se non puoi rispondere ... )
  • Re: [C] creare lib statiche con DEVC++

    OOOk ho risolto grazie mille
Devi accedere o registrarti per scrivere nel forum
3 risposte