2010-09-08 4 views
2

Je suis assez nouveau en C++ après quelques années en Java et Eclipse, j'ai eu un peu de confusion en utilisant code :: blocks, pas de setter/getter autogenerate et aussi d'interface: D.Question sur la structure du dossier C++ pour le fichier d'en-tête

Je veux poser des questions sur la structure du code dans code :: blocks, je crée une nouvelle application console, mon en-tête sera placé dans le dossier Headers/include appelé Employee.h, puis .cpp sera placé dans le dossier src. Maintenant, je crée la classe principale (je mets en dehors du dossier src) qui appellera l'en-tête, je joins juste le code comme ceci comprend:

#include "Employee.h" 

vous alors les erreurs sont apparues après la compilation: erreur: Employee.h : Aucun fichier ou répertoire de ce nom.

comment lier l'en-tête à la classe principale correctement?

c'est ma structure de dossier:

alt text

mise à jour: Il fonctionne, mon dossier doit inclure ajouter sur les options de construction. alt text

Vraiment merci

Répondre

2

Vous devez ajouter votre répertoire include au chemin d'inclusion de votre compilateur. Cela va être spécifique au compilateur. par exemple, si votre structure est:

code 
code/src 
code/include 

et vous êtes en cours d'exécution g ++ à partir d'un terminal dans le répertoire « code », vous auriez besoin de courir (en supposant que votre Cpp est Employee.cpp):

g++ -Iinclude src/Employee.cpp 

Je suppose que vous exécutez une sorte d'IDE, cependant: si c'est le cas, faites une recherche dans son aide pour "include path" et il devrait vous dire comment le configurer correctement.

+0

yeahhhh ... cela fonctionne, j'ai besoin d'ajouter mon dossier "include" sur les options de construction. La capture est jointe ci-dessus. –

1

Si vous voulez inclure votre employee.h vous devez #include "employee.h" pas Employee.h. Ce sont deux fichiers différents.

+0

Probable que l'emplacement du fichier doit également être validé. – ckv

+0

ups désolé pour mon mal tapé, je veux dire que j'ai Employé.h pas employee.h, je suis vraiment sûr que cette question est à propos de mauvais adressage de mon en-tête. –

+0

Sur un système d'exploitation sensible à la casse. Donne une peine de migrer de Windows à Unix ... –

1

Vous ne devez pas ajouter de chemins d'accès à vos options de génération pour les fichiers d'en-tête qui sont réellement partie de votre projet. Il n'a pas trouvé le fichier d'en-tête de EmployeeTest.cpp car vous n'avez pas utilisé le chemin relatif complet.

Vous devez:

#include "include/Employee.h" 

Vous ne devriez ajouterez chemins d'entêtes vers votre compilateur pour les bibliothèques supplémentaires qui ne sont pas ajoutés au/include/typique/usr local ou/usr/include répertoires.

+0

Que se passe-t-il lorsque Employee.h est déplacé du dossier include dans un autre dossier, peut-être .. "company" par exemple?Dans cet exemple, il/elle devrait ajouter le chemin include aux options de construction, bien que cette structure ne soit pas bonne. Au lieu de Headers/Include/Employee .. Configurez simplement votre projet en tant que Headers/... (tous vos fichiers d'en-tête) @Mr. K – clanmjc

Questions connexes