PDA

Visualizza la versione completa : [C/C++]: Linking non corretto in applicazione VC++


omni.andrea
03-08-2006, 16:22
Salve a tutti.
Sto programmando una piccola applicazione con visual c++, ma ho un po' di problemi. Ho provato anche a cercare post analoghi sul forum ma purtroppo non presentavano lo stesso problema.
Sto cercando di dividere il mio programma (per ora costituito solo da un main principale) in più file, creando quindi il relativo file .h e file .c per le funzioni.
Volevo quindi mettere due funzioni in un file a parte, chiamato fir.c
Ho creato allora il file fir.h con i prototipi:

//fir.h
#include <conio.h>
#include <stdio.h>

void clear(int ntaps, short z[]);
short fir(short input, int ntaps, const double h[], short z[]);
/////////////////////////77


e il file fir.c con le dichiarazioni:

//fir.c
#include <conio.h>
#include <stdio.h>
#include "fir.h"


/************************************************** **************************/
/* clear: zeroize a FIR delay line */
/************************************************** **************************/
void clear(int ntaps, short z[])
{
[....]
}


/************************************************** **************************
* fir: Does the basic FIR algorithm: store input double, calculate
* output double, move delay line
************************************************** ***************************/
short fir(short input, int ntaps, const double h[], short z[])
{
int i;
short out;

[....]

return out;
}
////


All'inizio del main.c ho messo l'include a "fir.h" e ho compilato, ma mi escono diversi messaggi di errore:

main.obj : error LNK2001: unresolved external symbol "short __cdecl fir(short,int,double const * const,short * const)" (?fir@@YAFFHQBNQAF@Z)
main.obj : error LNK2001: unresolved external symbol "void __cdecl clear(int,short * const)" (?clear@@YAXHQAF@Z)
Debug/MultipleDescriptions.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

Qualcuno di voi ha qualche idea?
Grazie!

oregon
03-08-2006, 16:34
Hai creato un progetto e hai inserito nel progetto i due sorgenti .c ?

omni.andrea
03-08-2006, 17:47
sì sì l'avevo fatto.. avevo anche provato ad aggiungere dopo i file e mi dicevano che erano già aggiunti!
Adesso ho creato il progetto da zero e mi funziona... mah!
Grazie comunque, e scusate!

oregon
03-08-2006, 17:48
Evidentemente il progetto non era stato creato correttamente ...

No problem ...

Loading