2017-08-08 3 views
0

Oui, je sais qu'il y a comme 100000000 questions comme ceci sur ce site. J'ai passé 2 heures caché SO pour savoir ce que je fais mal. Ceci est mon projet arborescence:C++ y compris de l'autre répertoire ne fonctionne pas

enter image description here

main.cpp commence par ceci:

#include <iostream> 
#include "XD.hpp" 

(lib/XD.hpp ou <XD> ne fonctionne pas aussi bien)

J'ai essayé beaucoup d'autres combinaison, je même fait -I/home/frynio/Desktop/projects/sdizo1/lib, mais cela ne fonctionne toujours pas. Est-ce que vous voyez ce que je fais mal ici? Je sais que ce sera massivement downvoted, mais je préfère passer du temps à travailler sur mon projet plutôt que d'essayer de comprendre ce truc.

+4

Que diriez-vous '-I./Lib'? – P0W

+0

Parfois, des choses comme cela se produisent également lors du collage de la copie et en incluant accidentellement d'étranges caractères non visibles. Essayez de taper à nouveau la ligne #include "XD.hpp". – Peter

+2

Essayez d'exécuter gcc avec l'option -v. Il devrait vous dire où il recherche les en-têtes. –

Répondre

2

Il devrait ressembler à ceci

#include "../lib/XD.hpp" 
+0

C'est juste en utilisant un chemin relatif, non? Je veux dire ".." me renvoie au répertoire précédent? – FrynioS

+0

Je pense que la meilleure solution est fournie par P0W: utilisez '-I./Lib'. Si le fichier include est déplacé vers un autre emplacement, tous les includes pour 'XD.hpp' doivent être changés. Avec l'option '-I', seul un makefile doit être changé. –