Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » [Résolu] Could not open source file
Palra Hors ligne Membre Points: 276 Défis: 0 Message

[Résolu] Could not open source file

Posté le 16/05/2014 14:10

Bonjour à tous !

J'essayais de coder une petite librairie d'affichage en 3D, qui fonctionnait jusque là très bien. Cependant, je ne sais pas ce qui c'est passé, mais je me suis mis à avoir cette erreur :
..\render/Camera.h(4) : C5005 (F) Could not open source file "math/Vector.h"

Je ne vois pas du tout en qui ce fichier ne pourrait pas être accessible. J'ai mis le projet sur Github afin que vous puissiez voir l'arborescence des fichiers : https://github.com/palra/CasGL

Dans le SDK, j'ai mis dans la liste des fichiers à compiler uniquement les fichiers *.c, puisque j'ai lu quelque part dans le forum qu'inclure les fichiers *.h provoquait des bugs. Ai-je bien fait ?

Merci de m'avoir lu !


1, 2 Suivante
Alphacreator Hors ligne Membre Points: 1464 Défis: 43 Message

Citer : Posté le 16/05/2014 14:33 | #


Personnellement j'inclus toujours mes .h dans le SDK et je n'ai toujours pas eut d'erreur, essaye de les inclure, ça m'arrivait aussi ce genre d'erreurs avant d'inclure mes .h
Palra Hors ligne Membre Points: 276 Défis: 0 Message

Citer : Posté le 16/05/2014 16:03 | #


    WARNING: The following dependant file(s) do not exist: "src\lib\MonochromeLib.h" "src\render\Camera.h" "src\render\Vertex.h" "src\render\math\Matrix.h" "src\render\math\Vector.h". Line: 87
    WARNING: The following dependant file(s) do not exist: "src\lib\MonochromeLib.h" "src\render\Camera.h" "src\render\Vertex.h" "src\render\math\Matrix.h" "src\render\math\Vector.h". Line: 104
    WARNING: The following dependant file(s) do not exist: "src\lib\MonochromeLib.h" "src\render\Camera.h" "src\render\Vertex.h" "src\render\math\Matrix.h" "src\render\math\Vector.h". Line: 121
    WARNING: The following dependant file(s) do not exist: "src\lib\MonochromeLib.h" "src\render\Camera.h" "src\render\Vertex.h" "src\render\math\Matrix.h" "src\render\math\Vector.h". Line: 138
"C:\CASIO\fx-9860GSDK\OS\SH\bin\shc.exe" -subcommand=C:\Users\LOC~1\AppData\Local\Temp\hmkF8F9.tmp
D:\Documents\CASIO\Codes\3D\src\render/Camera.h(4) : C5005 (F) Could not open source file "math/Vector.h"


C'est les erreurs typiques que me produit le SDK si j'inclus les .h. Plus l'erreur dont il est question plus haut
Calculatrice : Graph 35+ modée
Système d'exploitations : Apricity OS - Windows 10
Drac0300 Hors ligne Membre Points: 839 Défis: 39 Message

Citer : Posté le 16/05/2014 17:46 | #


Il y a un truc qui m'intrigue : dans
..\render/Camera.h(4) : C5005 (F) Could not open source file "math/Vector.h"

il utilise un "/" pour séparer les niveaux de l'arborescence (sauf au tout début ou c'est un "\"). Or, si tu utilise le SDK, je suppose que tu es sous Windows. Mais ça n'est pas logique, il devrait alors utiliser un "\"...
C'est peut-être complètement idiot mais ça m'intrigue.

De plus,
signature de Palra a écrit :
Système d'exploitation (principal) : Linux Mint 16
tu dois donc utiliser wine pour lancer le SDK. c'est peut-être la source du problème, un problème du système de fichier lié à wine...
Dans Z/1Z, 42==666
Coïncidence ? Je ne pense pas.
Palra Hors ligne Membre Points: 276 Défis: 0 Message

Citer : Posté le 16/05/2014 18:25 | #


Alors j'ai essayé sur Wine d'installer le SDK, je n'ai pas réussi à changer le chemin d'installation du SDK, ce qui provoque des erreurs de compilation si le chemin en question contient des espaces. J'ai laissé tomber Wine et là je suis sur un Windows virtualisé, donc Windows quoi.

Même si c'était un changement de "/" à "\", pourquoi avant ça marchait sans problèmes ? D'ailleurs ça ne change rien...
Calculatrice : Graph 35+ modée
Système d'exploitations : Apricity OS - Windows 10
Lephenixnoir En ligne Administrateur Points: 18133 Défis: 142 Message

Citer : Posté le 16/05/2014 18:55 | #


Le fichier n'existe pas du point de vue du SDK, de toute évidence.
Pour ma part, je déconseille Wine, car il me plantait à chaque compilation (Linux Mint 16, 64 bits).
Pour ce coup, je te conseille d'utiliser VirtualBox (XP SP3), qui fonctionne très bien, y compris avec l'USB (donc FA-124).
Sinon, essaye avec deux '\'. Avec un ça ne risque pas de fonctionner plus.
Palra Hors ligne Membre Points: 276 Défis: 0 Message

Citer : Posté le 16/05/2014 20:01 | #


Avec deux '\', toujours pareil. Et je suis bien sous Windows actuellement, Windows 8.
Calculatrice : Graph 35+ modée
Système d'exploitations : Apricity OS - Windows 10
Lephenixnoir En ligne Administrateur Points: 18133 Défis: 142 Message

Citer : Posté le 16/05/2014 20:03 | #


Tu as bien un fichier "Vector.h" (attention à la casse) dans un sous-dossier math du projet ou des dossiers standard ?
Palra Hors ligne Membre Points: 276 Défis: 0 Message

Citer : Posté le 16/05/2014 20:06 | #


Oui, tu peux regarder l'arborescence des fichiers dans le lien de mon premier message si tu veux.
Calculatrice : Graph 35+ modée
Système d'exploitations : Apricity OS - Windows 10
Lephenixnoir En ligne Administrateur Points: 18133 Défis: 142 Message

Citer : Posté le 16/05/2014 20:13 | #


Au temps pour moi.
Réflechissant une seconde, l'arborescence en / doit fonctionner vu que tu inclus "../lib/MonchromeLib.h".
De plus, l'erreur n'apparaît pas avec Matrix.h.

Enfin, rien de tout ça n'est sûr, puisque ça génère une fatal error...

Tu as essayé en copiant le header dans le même dossier que la source (et en adaptant bien entendu) ?
Palra Hors ligne Membre Points: 276 Défis: 0 Message

Citer : Posté le 16/05/2014 20:28 | #


Avec ta solution ça marche, mais bon je cherche quand même à rester organisé dans mes fichiers, si quelqu'un a déjà eu un problème similaire, qu'il le fasse savoir ! Merci Lephenixnoir en tout cas

Ajouté le 16/05/2014 à 21:01 :
Je n'ai même pas touché au code, et ça recommence, malgré l'application ta solution
Calculatrice : Graph 35+ modée
Système d'exploitations : Apricity OS - Windows 10
Lephenixnoir En ligne Administrateur Points: 18133 Défis: 142 Message

Citer : Posté le 16/05/2014 21:04 | #




De nouveau, rien n'a changé dans les chemins ?
Tu es sûr que tu n'as rien touché au code ?
Palra Hors ligne Membre Points: 276 Défis: 0 Message

Citer : Posté le 16/05/2014 21:16 | #


Absolument rien ! J'étais parti manger, je suis revenu et j'ai cliqué sur "Build", et encore erreur. Et je n'ai absolument rien touché !
Calculatrice : Graph 35+ modée
Système d'exploitations : Apricity OS - Windows 10
Lephenixnoir En ligne Administrateur Points: 18133 Défis: 142 Message

Citer : Posté le 16/05/2014 21:17 | #


Bon...
Je peux avoir le projet complet (dans un zip) ?
Palra Hors ligne Membre Points: 276 Défis: 0 Message

Citer : Posté le 16/05/2014 23:56 | # | Fichier joint


Voilà, en fichier joint ! Ne fais pas attention à tout ce qui est algorithmique, c'est en cours d'avancement
Calculatrice : Graph 35+ modée
Système d'exploitations : Apricity OS - Windows 10
Lephenixnoir En ligne Administrateur Points: 18133 Défis: 142 Message

Citer : Posté le 17/05/2014 07:37 | #


Voilà ce que je peux dire.
Le chemin d'accès à l'origine était bizarre, car composé de '\' avec un '/' à la fin.

J'ai tenté de modifier, renommer le fichier Vector.h, ce qui n'a pas fonctionné. Or l'inclusion de Matrix.h fonctionnait.
Puisque je pouvais inclure Vector.h dans Camera.c, je me suis demandé si on ne pouvait pas l'inclure "avant" pour qu'il soit visible par Camera.h.

Et si on inclut Vector.h dans Camera.c après Camera.h, on a une liste d'erreurs de noms indéfinis (j'ai retiré l'include de Camera.h). Or si on le met avant, on a une fatal error.

Je pense que tu peux chercher de ce côté.
Palra Hors ligne Membre Points: 276 Défis: 0 Message

Citer : Posté le 17/05/2014 13:35 | #


Merci beaucoup de ton aide ! Je verrai ça plus tard dans la journée, et je te tiendrai au courant, encore merci

Ajouté le 20/05/2014 à 20:01 :
J'ai trouvé le problème !

Lorsqu'on inclut un fichier dans un autre, le préprocesseur ne fait qu'un simple copie coller du contenu du fichier inclut, ainsi les chemins fournis ne sont plus fonctionnels si on part d'un autre fichier d'un autre dossier. Voilà pour le problème, mais je n'ai pas de solution. J'avais pensé à la forward declaration, mais je ne sais pas comment m'y prendre
Calculatrice : Graph 35+ modée
Système d'exploitations : Apricity OS - Windows 10
Lephenixnoir En ligne Administrateur Points: 18133 Défis: 142 Message

Citer : Posté le 20/05/2014 20:06 | #


Je savais pour le copier-coller mais je ne comprends pas où est le problème tant que l'inclusion est faite relativement au fichier dans lequel le header est inclus.
Tu pourrais détailler, ou me donner un exemple ?
Palra Hors ligne Membre Points: 276 Défis: 0 Message

Citer : Posté le 20/05/2014 20:09 | #


Ok, considère l'arborescence de fichiers suivante :

/src
- /lib
- - MonochromeLib.h
- /scenes
- - game.h
- - /levels
- - - level.h

Dans level.h, tu fais un include "../../lib/MonochromeLib.h", donc ok tout va bien, mais dans le game.h tu fais un include "levels/level.h", il trouve le fichier et copie son contenu, dont le "../../lib/MonochromeLib.h". Ainsi, depuis le game.h, "../../lib/MonochromeLib.h" ne pointe pas vers le bon fichier, il pointe d'ailleurs sur rien du tout.
Calculatrice : Graph 35+ modée
Système d'exploitations : Apricity OS - Windows 10
Lephenixnoir En ligne Administrateur Points: 18133 Défis: 142 Message

Citer : Posté le 20/05/2014 20:16 | #


Je vois.
Alors tu n'as plus qu'à appliquer une des deux solutions suivantes.
- Ne pas mettre d'include dans les fichiers inclus (contraignant)
- Utiliser des chemins absolus

La deuxième étant bien sûr la meilleure.
Palra Hors ligne Membre Points: 276 Défis: 0 Message

Citer : Posté le 20/05/2014 20:17 | #


Les chemins absolus n'ont pas l'air de fonctionner, tu t'y prends comment pour les utiliser ?

Je débute en C plz ne me frappe pas
Calculatrice : Graph 35+ modée
Système d'exploitations : Apricity OS - Windows 10
1, 2 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
Pour coloriser votre code, cliquez ici.
Sinon cliquez sur le bouton ci-dessous.
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2020 | Il y a 39 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd