debutant : compile sous borland mais pas gcc - C++ - Programmation
Marsh Posté le 29-04-2003 à 08:56:15
ce quoi ce 101 dans la boucle ? Pis c koi ce souc tout court
Marsh Posté le 29-04-2003 à 08:57:33
en fait c peut etre cygwin qui foire :
/usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../libcygwin.a(licmain.o)(.text+0x7c):undefined reference to '_WinMain@16'
collect2: ld returned 1 exit status
Marsh Posté le 29-04-2003 à 08:58:46
chrisbk a écrit : ce quoi ce 101 dans la boucle ? Pis c koi ce souc tout court |
euh bah cad euh (prof de merde !!)
Marsh Posté le 29-04-2003 à 08:59:19
Ah ok je cprends mieux la
Bon, ben regarde dans les options de cygwin si t'as un truc pour faire un exe em mode "console"
Marsh Posté le 29-04-2003 à 09:03:50
GUG a écrit : j ai le code suivant qui compuile sous borlan mais pas gcc ..., il y a donc surment une erreur qqpart : gcc me retourne une erreur sur ld ...
|
Je vois un ou deux trucs bizarres:
1)char name[30] et int Taballoc[1000] sont définis 2 fois (globalement et en tant que paramètre de ta fonction).
2) Même chose pour Catfic[100], qui devrait également plutot apparaitre ainsi dans l'entete de la fonction (ne pas oublier le struct):
Code :
|
Tu pourrais nous donner le reste (s'il y a autre chose)?
Je ne vois rien qui explique une erreur de link ici...Donne aussi ta ligne de commande pour compiler (ou ton makefile).
Marsh Posté le 29-04-2003 à 09:05:46
il n y a rien d autre, pour compiler :
g++.exe lefichier.cpp
bon je v arranger tout ca pour voir
Marsh Posté le 29-04-2003 à 09:05:50
Si cela constitue l'intégralité de ton prog, il beugle p-e parce-qu'il n'y a pas de main, tout simplement...
Marsh Posté le 29-04-2003 à 09:07:21
GUG a écrit : il n y a rien d autre, pour compiler : |
voir ma réponse précédente, ca doit expliquer le pb de link.
Si tu veux faire un executable il te faut un main...
Marsh Posté le 29-04-2003 à 09:08:39
GUG a écrit : j ai le code suivant qui compuile sous borlan mais pas gcc ..., il y a donc surment une erreur qqpart : gcc me retourne une erreur sur ld ...
|
Marsh Posté le 29-04-2003 à 09:12:03
skeye a écrit : |
un WinMain precisemment, donc appli win32
C pour ca que je lui demande de chercher pour une option "mode console" histoire qu'il puisse continuer a faire du main() standart
Marsh Posté le 29-04-2003 à 09:16:50
apres modif voila ce que j ai fait : et ca compile :
Code :
|
Marsh Posté le 29-04-2003 à 09:17:10
chrisbk a écrit : |
à priori il compile avec gcc, donc un bon vieux main devrait suffire, non?
en tout cas j'ai jamais utilisé de winmain avec gcc/cygwin!
Marsh Posté le 29-04-2003 à 09:17:35
GUG a écrit : apres modif voila ce que j ai fait : et ca compile :
|
et je suis sur que ton exe est super utile
Marsh Posté le 29-04-2003 à 09:19:08
skeye a écrit : |
ben heuh :
Citation : /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../libcygwin.a(licmain.o)(.text+0x7c):undefined reference to '_WinMain@16' |
Bon, vu qu'y avait ni main ni WinMain.....
Marsh Posté le 29-04-2003 à 09:21:23
GUG a écrit : apres modif voila ce que j ai fait : et ca compile :
|
Il ne te reste plus qu'à appeler ta fonction dans le main, histoire de faire quelquechose...
Je te conseillerais aussi d'éviter les variables globales...
J'aurais plutot vu un truc de ce genre:
Code :
|
Marsh Posté le 29-04-2003 à 09:25:43
chrisbk a écrit :
|
pb au link...Je suppose que c'est du au fait que cygwin est un "faux" bash pour windows (au final tu fais du bash dans une console ms-dos classique...). Le gcc filé avec doit avoir un fonctionnement particulier afin d'assurer le fonctionnement sous windows de façon transparente pour l'utilisateur...
Marsh Posté le 29-04-2003 à 09:26:22
merci a tous
je vais voir ca mais bon les variables globales c moins chiant a utiliser
Marsh Posté le 29-04-2003 à 09:27:27
GUG a écrit : merci a tous |
C'est aussi une des meilleures façons de faire des conneries sans s'en rendre compte...
Marsh Posté le 29-04-2003 à 09:27:34
skeye a écrit : |
heuh en fait, je vois pas trop ce que tu veux dire
Marsh Posté le 29-04-2003 à 09:33:31
chrisbk a écrit : |
Ben euh tout ce que je voulais dire c'est que les librairies utilisées par le gcc de cygwin sont probablement != des librairies classiques de gcc sous linux par ex...
La référence à un "WinMain" qui apparaissait dans son erreur de link venait probablement du fonctionnement interne de son compilateur, et ne voulait pas dire que ce dernier attendait de la part de l'utilisateur l'utilisation d'une syntaxe inhabituelle...
Marsh Posté le 29-04-2003 à 09:34:55
?
WinMain est le point d'entree stdart pour une appli Win32
pe que ne trouvant pas de main() il a tenter de voir si y'avait un WinMain et vu que non => echec ?
Marsh Posté le 29-04-2003 à 09:38:48
chrisbk a écrit : ? |
Moué...pas convaincu...
On demande un expert de gcc/cygwin!
Je pense plutôt que lors de la compil cette version précise de cygwin convertit le main classique en winmain de façon transparente pour l'utilisateur...mais bon tant qu'on n'a pas de preuves...
Tiens il faudrait que GUG essaie de remplacer main() par WinMain() dans son code, pour voir...
Marsh Posté le 29-04-2003 à 09:42:23
skeye a écrit : |
mouais tiens, gug met ca pour voir a la place de ton int main() :
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
Marsh Posté le 29-04-2003 à 09:48:05
chrisbk a écrit : |
En tout cas djgpp comprend rien si je fais ça...
[edit]
D'ailleurs ca m'étonnerait que gcc connaisse tous ces types de données farfelus...
Marsh Posté le 29-04-2003 à 09:49:21
skeye a écrit : |
#include <windows.h> ?
Marsh Posté le 29-04-2003 à 09:57:03
chrisbk a écrit : |
tjrs pas chez moi...et ce genre de trucs sur un compilo venu du monde unix/linux c'est un coup à se faire taper...:lol:
Marsh Posté le 29-04-2003 à 09:59:40
skeye a écrit : |
c sur....mais dans ce cas pkoi le compilo parle de WinMain hein ?
Marsh Posté le 29-04-2003 à 10:01:24
chrisbk a écrit : |
ben euh...pask'il a pas le choix pour que ca marche sous win?
Aucune idée en fait...!
Marsh Posté le 29-04-2003 à 08:51:56
j ai le code suivant qui compuile sous borlan mais pas gcc ..., il y a donc surment une erreur qqpart : gcc me retourne une erreur sur ld ...
merci davance
Message édité par GUG le 29-04-2003 à 08:54:08