2010-01-05 3 views
0

J'ai une fonction implémentée dans un fichier cpp et déclarée dans un fichier d'en-tête. Dans le fichier cpp du programme principal, j'inclue le fichier d'en-tête et j'utilise la fonction. Cependant, cela échoue à lier (référence indéfinie à myFunc). Qu'est-ce que je dois changer pour le faire fonctionner?Comment puis-je faire en sorte que QtCreator compile plusieurs fichiers cpp et en-tête?

EDIT: fichier pro:

SOURCES += as241.c \ 
    main.cpp \ 
    normalvar.cpp \ 
    normaldistribution.cpp \ 
    studenttdistribution.cpp 
LIBS += -lgsl \ 
    -lgslcblas \ 
    -lm 
HEADERS += as241.h \ 
    var.h \ 
    distribution.h \ 
    normalvar.h \ 
    normaldistribution.h \ 
    studenttdistribution.h 

En main.cpp j'utilise une fonction de as241

as241.h:

#ifndef AS241_H 
#define AS241_H 

double ppnd16(double p); 

#endif // AS241_H 

as241.cpp:

#include "as241.h" 
#include <math.h> 

double ppnd16(double p) 
{ 
    //code 
} 
+0

quel est le contenu de votre fichier * .pro? – elcuco

+0

5K rep, et vous ne savez pas comment poser une question - un peu triste, je dirais. –

+0

pouvez-vous poster la sortie de make sur le shell? BTW, IMHO ce n'est plus une question de stackoverflow. Que diriez-vous de re-demander dans http://qtcentre.org? – elcuco

Répondre

1

Je ne peux pas être sûr sans voir le code, mais dans yout * .h fichier (celui qui correspond au fichier * .c) vous devriez faire:

extern c{ 
// old c code 
} 
+0

Tous les fichiers que j'ai mentionnés sont ajoutés au projet. – Grzenio

Questions connexes