-
Gcc et les fonctions
Boujour à tous,
J'ai un problème, je porte du code Windows sous Lunix.
Quand je compile les fonctions inexistantes comme WaitForSingleObject ne génère pas d'erreur à la compil ou au link.
Pour assurer le coup j'ai fait appel à la fonction flsjdkfljdskf(); dans mon code et je n'ai pas d'erreur.
J'ai du oublié quelque chose dans mon makefile. (j'ai mis gcc -Wall)
Merci.
Olivier
-
C'est une fonction de l'API win32.
Il va falloir que tu réécrives ton code pour utiliser une bibliothèque de threading qui tourne sous *nix ; et qui soit de préférence portable si tu veux pouvoir faire le chemin inverse.
-
euh pas posssible, normalement...
Tu compiles bien le bon fichier ?!?
-
oui je compile le bon fichier. J'ai montré le pb à une autre personne, comme moi, elle n'y comprend rien.
Pour résumer, si je mets zerzerkhz(); -> pas d'erreur
Par contre si je mets rerzerz; -> là ca me dit que la variable rerzerz n'est pas déclarée.
J'ai essayer sur mandrake 9.2 et 10.0 avec respectivement gcc 3.3.1 et 3.3.2, même synptome.
-
Avec -Wall au moins, il devrait te dire que tu n'as pas déclaré ta fonction. A moins que zerzerkhz existe :roll:
Sinon il considère que c'est une fonction de type int fn() et il te mets un problème au linkage.
T'as déjà essayé de faire un hello world tout bidon et de le tester sur ta machine pour voir si ta config est OK ? (j'entends par hell oworld un chti prog qui comporte un appel de fonction qmglhqmsdrghsdrmgjlh dans le main)
-
Je crois que j'ai trouvé, je suis un novice en la matière, et j'ai pris un makefile sur le Net. Je dois créer une librairie avec plusieurs fichier sources j'ai pris un makefile très court qui faisait ça mais je me rends contre que c'est lui qui me trappe pour les warning, pourtant j'ai ajouté le -Wall pour le link.
J'ai quand meme une question :
-Wall était appliqué qu'au link, pas à la compile, c'est ça mon erreur ?
-
Ah ben vi ;) !
En fait les warning avec -Wall t'auraient dit "attention je connais pas c'te fonction" mais seulement lors de la compil. Par contre ce qui est étrange c'est que le link passe 8O...
Concernant les makefiles, je te conseille de les faire à la main pour commencer, histoire de voir comment ça marche (normalement ca fait 1 ligne par fichier + 1 ligne pour tout regroupper.)
-
-
ok merci pour ton aide. Je vais peut-être pouvoir voir pourquoi j'ai ce satané message : segmation fault. La galère ne fait que commencer. :cry:
-
Euh peut être que c'est un peu chaud pour commencer mais gdb est un très bon outil de debug. Il gère les fenêtre d'exécutions, les points d'arrêt, les valeurs des registres et des variables,...
Pour l'utiliser avec un prog tu compiles tout avec l'option -g et ensuite tu tapes
et tu pourras analyser ou plante ton prog.
Précisions :
- lis bien la doc avant d'aller un peu loin avec gdb.
- les executables généré avec l'option -g sont sensiblements plus volumineux.