2017-07-23 1 views
0

J'ai donc un fichier de projet dans CodeBlocks pour Project Euler, mais je suis un peu confus à propos de ce que j'ai fait de mal dans la configuration de mon code. J'ai un fichier main.cpp pour exécuter mes programmes, et je prototype la fonction de chaque problème avant de l'utiliser dans le bloc principal. Cependant, j'ai cette erreur en essayant de le construire:La fonction prototypée n'est pas définie?

|| === Construire: Déboguer dans Project Euler (compilateur: compilateur GNU GCC) === | obj \ Debug \ main.o || Dans la fonction main':| C:\Users\under\cpp-workspace\Project Euler\main.cpp|9|undefined reference to p4() '| || error: ld a renvoyé 1 statut de sortie | || === Échec de la construction: 2 erreur (s), 0 avertissement (s) (0 minute (s), 0 seconde (s)) === |

C'est ce que j'ai, donc je ne suis pas sûr de ce qui ne va pas?

main.cpp:

#include <iostream> 

using namespace std; 

void p4(); 

int main() 
{ 
    p4(); 
    return 0; 
} 

p4.cpp:

#include <iostream> 

using namespace std; 

void p4() 
{ 

    cout << "hello there" << endl; 

} 

Je ne sais pas ce qui ne va pas?

Ma question n'est pas une copie, du moins pas que je puisse dire. La question est censée être une copie de ne jamais mentionner le problème que j'ai.

+0

Vous n'avez pas ajouté 'p4.cpp' à votre projet –

+0

Oui, je l'ai fait. Ils sont tous les deux dans le même projet. – underspring3000

+0

Peut-être que vous avez essayé de construire main.cpp au lieu de construire votre projet –

Répondre

0

I've checked, and p4() is a void function with no inputs, so I'm not sure what's wrong.

Vous avez déclaré p4() mais vous ne l'avez pas définir. Ajoutez

void p4() 
{ 
} 

à votre fichier pour une définition vide. Si vous avez besoin de faire plus dans p4, ajoutez le code que vous voulez.


Mise à jour

Vous avez juste besoin d'ajouter p4.cpp à l'ensemble des fichiers dans votre projet.

+0

Je viens de réaliser que j'ai oublié d'ajouter le fichier p4.cpp ici. Dans le projet, les fichiers main.cpp et p4.cpp sont dans le même projet. Je vais l'ajouter au message principal maintenant. – underspring3000

+0

Les deux fichiers sont dans le même projet cependant. – underspring3000

+0

@ underspring3000, il ne peut pas être. Peut-être que vous êtes confus parce que le fichier est dans le système de fichiers. La présence d'un fichier dans le système de fichiers ne met pas automatiquement le fichier dans le projet. –