PDA

View Full Version : [C/C++ - Cygwin - ANT - OpenGL] Linker: undefined reference to `_WinMain@16'


Bonfo
09-03-2006, 14:50
Non so quanto si capisca dal titolo.
Faccio una breve introduzione per spiegare il problema.

L'obbiettivo principale consiste nel compilare una applicazione che faccia uso delle OpenGL, GLUT e GLUI in C/C++ (Il linguaggio è obbligatorio....colpa di un esame :( )

Siccome mi aggincevo a fare una serie di progetti volevo provare ad usare un sistema automatico per gestire al meglio il tutto. Poichè ho una bassa conoscenza di Make e dei Makefile volevo provare ad usare ANT.
Sono riuscito a trovare un progetto: cpptasks (http://ant-contrib.sourceforge.net/cc.html) :sofico:

A questo punto avevo bisogno di un compilatore sotto Windows. Poichè l'obbiettivo è che le applicazioni possano girare anche sotto Linux ho scelto Cygwin

Già ho impiegato un bel po' per compilare con gcc utilizzando le glut...e non è stato affato facile per me capire dove era l'inghippo.
A quel punto sono riuscito a far sì che ANT mi desse lo stesso risultato

Felice di ciò mi sono lanciato con le GLUI
Prima compilazione con g++ Ok
Provo con ANT...mi linka solo con gcc ...argh :mad:
A questo punto ho perso un po' di tempo per capire in quanto gcc ormai comprende g++ e non capivo....è bastato agiungere a gcc la libreria stdc++.
Allora rilancio ANT e .....porcaccia miseria...mi da qusto errore

undefined reference to `_WinMain@16'

:muro: :muro: :muro: :muro: :muro:

L'unica cosa che ho scoperto è che il problema può essere dovuto al fatto che uso un main "normale" nella mia applicazione invece di usare il WinMainProg considerando che è una applicazione "grafica" i windows.
Questa cosa però non mi convince perchè compilando a mano l'errore non c'è l'ho... :cry:

A questo punto ....poichè non sono riuscito a fare un makefile che legga in automatico i file dentro una cartella...ho gettato la spugna e mi sono accoccolato sotto le ali protrettrici di Eclipse :bimbo:
Prima di parlare di Eclipse ammetto di conoscerlo poco...e CDT ancora meno. Spesso mi stupisce con cose incomprensibili. :mbe:

Faccio il mio progettino con CDT e .....cosa mi dice il linker:
Severity Description Resource In Folder Location Creation Time Id
2 /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libcygwin.a *g++ -oCG.exe ./src/CGLabs.o : undefined reference to `_WinMain@16' CG line 0 9 marzo 2006 12.50.03 187

E così anche Eclipse mi abbandona al mio destino.... :cry: :cry:
Anche se lo perdono perchè il più delle volte sono io che sbaglio e non lui :P

Chi mi può aiutare???
:help: :help: :help:

Bonfo
09-03-2006, 15:13
Sto approfondendo con Eclipse....

...non riesco a fargli includere le GLUT.... :muro: :muro:

UFF....chissà che sto sbagliando !!!

cionci
09-03-2006, 19:15
Prova a leggere qui: http://dbforums.com/showthread.php?threadid=555312

Bonfo
09-03-2006, 20:52
Non mi sono spiegato :(

Con Eclipse penso di aver sbagliato prorpio qualcosa io quindi non lo consideriamo (ripeto....non riesco neppure ad includere le glut)

Invece l'errore mi si presenta compilando con ANT.
La cosa strana è che compilando a mano o con il makefile fornito con gli esempi tutto funziona perfettamente.
Quindi io il codice non lo tocco perchè sono sicuro che è giusto. :muro:

Il problema avviene solamente in fase di linking e al 99% è un problema di librerie usate. O meglio....penso sia così.

cionci
09-03-2006, 22:43
Bonfo: se guardi un po' in giro si vede che è un problema ricorrente con Cygwin...