Link [Résolu]

neophenix83 63 Messages postés samedi 9 avril 2005Date d'inscription 4 mai 2007 Dernière intervention - 20 mars 2006 à 13:44 - Dernière réponse : Guillemouze 1015 Messages postés samedi 25 octobre 2003Date d'inscription 29 août 2013 Dernière intervention
- 21 mars 2006 à 13:42
Bonjour,

Je tente de compiler les sources d'un projet que j'ai récupéré, mais je me trouve face à un pb.

Je veux compiler sous VC8, et lors de la compilation, il me dit
fatal error LNK1104:
Car il ne trouve pas un certain fichier test.obj
Qu'est ce que ce fichier .OBJ ?! car je n'ai aucun fichier portant ce type d'extension...
D'ou vient il? que veux t il ?

Je sais, je débute un peu sous VC

D'avance, merci.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Guillemouze 1015 Messages postés samedi 25 octobre 2003Date d'inscription 29 août 2013 Dernière intervention - 21 mars 2006 à 13:42
3
Merci
tu utilise quoi pour compiler? visual studio (je suppose vu qu'il cree des .obj) , ... ?

en general, les fichiers que tu met dans un dossier include devraient etre que des .h
pour que la compilation marche bien. il faut que tu specifie qu'il faut aussi rechercher les fichier objets dans ton dossier, et que tu compile ton test1.c en test1.obj.
je connais pas trop visual studio, mais ta compilation devrait se derouler comme ca ($CC est ton compilateur: gcc, ...) :
$CC -c projet/include/test/test1.c -o projet/include/test/test1.obj
$CC -c test2.c -o test2.obj
...
$CC -o tonproj.exe test2.obj projet/include/test/test1.obj ...

Merci Guillemouze 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de Guillemouze
Guillemouze 1015 Messages postés samedi 25 octobre 2003Date d'inscription 29 août 2013 Dernière intervention - 20 mars 2006 à 13:53
0
Merci
le fichier test.obj est un fichier C/C++ compilé.
La compilation se deroule en 2 etapes.
1 - compilation des sources une par une
2 - edition des liens

par example, si tu as 2 fichiers source test1.cpp et test2.cpp ( et eventuellement test1.h / test2.h)
alors le compilateur compilera tout d'abord test1.cpp en test1.obj et test2.cpp en test2.obj, puis linkera test1.obj et test2.obj en xxxx.exe
imaginons que dans ton fichier test2 tu ai une fonction fct(int x), et que dans test1 tu fasse appel à cette fonction (donc dans test1 tu aura "#include test2.h"), alors a la compilation des fichiers, il verifiera que ta fonction existe bien, et au linkage, il 'recopiera' cette fonction dans test1 (en gros).

donc test.obj doit etre le fichier test.cpp compilé.

P.S.: les fichier .h qui n'ont pas de .cpp sont juste linkés, pas compilés
Commenter la réponse de Guillemouze
neophenix83 63 Messages postés samedi 9 avril 2005Date d'inscription 4 mai 2007 Dernière intervention - 20 mars 2006 à 13:58
0
Merci
Merci pour tes explications fort claires.

Donc, si j'ai bien tout compris, si il ne trouve pas mon fichier test.obj, ca signifie que le test.c ne s'est pas compilé de facon correcte ?!
Mais dans ce cas, comment puis je savoir ou ca a cafouillé dans la compilation si la seule erreur que j'ai est cette erreur de link qui me dit qu'il ne trouve pas le fichier test.obj ?!
Commenter la réponse de neophenix83
neophenix83 63 Messages postés samedi 9 avril 2005Date d'inscription 4 mai 2007 Dernière intervention - 20 mars 2006 à 14:51
0
Merci
Bon, en fait, il y a encore un autre leger soucis.....et c'est de là que viennent mes gros embettement.

En fait, je souhaite qu'il cree le .obj, alors je fais compiler le fichier test1.c qui se trouve normalement dans un repertoire projet/include/test/test1.c

mais quand je le compile, il me crée en réalité un include.obj dans le repertoire projet .
Je ne comprend vraiment pas. Je pensais que lorsque je compile test1.c, il me créait test1.obj dans le meme repertoire...
Y a t il des options à changer ?!

Cordialement,
Merci
Commenter la réponse de neophenix83

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.