|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2006
Messaggi: 30
|
problema ccc_win.h in c++ (programmi grafici)
Buongiorno ragazzi, mi sto preparando all'esame di fondamenti di informatica 1 di ingegneria elettronica sul c++, utilizzo il libro Fondamenti di C++ di Cay Horstmann.
ho riscontrato dei problemi nel capitolo 3, per poter creare i programmi grafici, mi sono scaricato il file zip dal sito del libro, il file codice.zip, questo zip contiene i codici di tutti i programmi di esempio del libro, gli header e le librerie grafiche create per l'occasione, solamente non funziona, vi spiego, ho messo nella cartella include di codeblocks (programma che devo utiizzare per il corso e l'esame) tutti gli header .h e i file .cpp(dovrebbero essere le librerie compilate dei file .h) contenuti nella cartella cccfiles del file zip codice.zip però ho un problema con l'header ccc_win.h che è l'unico che non ha il suo corrispettivo ccc_win.cpp e non so per quale motivo qualsiasi programma di esempio che sta sul libro che utilizza questo header ripetendolo su codeblocks non funziona. il programma è: #include "ccc_win.h" int ccc_win_main() { Point p(1, 3); Point q = p; Point r = p; q.move(0, 1); r.move(1, 0); Line s(p, q); Line t(p, r); cwin << s << t; s.move(1, 0); t.move(0, 1); cwin << s << t; return 0; } questo programma dovrebbe raffigurare un quadrato invece crea i seguenti errori di compilazione: obj\Debug\main.o||In function `Z12ccc_win_mainv':| C:\Users\Stefano\Documents\programmi c++\quad\main.cpp|7|undefined reference to `Point::Point(double, double)'| C:\Users\Stefano\Documents\programmi c++\quad\main.cpp|10|undefined reference to `Point::move(double, double)'| C:\Users\Stefano\Documents\programmi c++\quad\main.cpp|11|undefined reference to `Point::move(double, double)'| C:\Users\Stefano\Documents\programmi c++\quad\main.cpp|12|undefined reference to `Line::Line(Point, Point)'| C:\Users\Stefano\Documents\programmi c++\quad\main.cpp|13|undefined reference to `Line::Line(Point, Point)'| C:\Users\Stefano\Documents\programmi c++\quad\main.cpp|14|undefined reference to `cwin'| C:\Users\Stefano\Documents\programmi c++\quad\main.cpp|14|undefined reference to `GraphicWindow::operator<<(Line)'| C:\Users\Stefano\Documents\programmi c++\quad\main.cpp|14|undefined reference to `GraphicWindow::operator<<(Line)'| C:\Users\Stefano\Documents\programmi c++\quad\main.cpp|15|undefined reference to `Line::move(double, double)'| C:\Users\Stefano\Documents\programmi c++\quad\main.cpp|16|undefined reference to `Line::move(double, double)'| C:\Users\Stefano\Documents\programmi c++\quad\main.cpp|17|undefined reference to `cwin'| C:\Users\Stefano\Documents\programmi c++\quad\main.cpp|17|undefined reference to `GraphicWindow::operator<<(Line)'| C:\Users\Stefano\Documents\programmi c++\quad\main.cpp|17|undefined reference to `GraphicWindow::operator<<(Line)'| c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\libmingw32.a(main.o):main.c|| undefined reference to `WinMain@16'| ||=== Build finished: 14 errors, 0 warnings ===| Ma perchè? Quali sono i passi precisi per integrare gli header(soprattutto questo header grafico) e le librerie grafiche date sul sito del libro? perchè mettendo il tutto nella cartella include mi da errori. (PS ho provato ad inserire in include ccc_win.cpp trovato sul sito inglese del libro, cosi facendo gli errori citati prima non ci sono perchè forse trova le informazioni mancanti in questo file però mi escono tantissimi altri errori collegati ad altri file come ccc_ansi.cpp ecc che sono altri file sempre del sito inglese non compresi nel file zip codice.zip italiano e quindi comunque il programma e suoi annessi con lo stesso header non partono. Rimango in attesa di un vostro aiuto, perchè son rimasto bloccato qui, al capitolo 3 su programmi grafici, sono 3 giorni che ci sbatto la testa, grazie mille in anticipo. Tanti Saluti. |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Oct 2006
Messaggi: 30
|
Nessuno che può aiutarmi? Sono in stallo ho bisogno di voi!!! :P
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Oct 2006
Messaggi: 30
|
up
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Oct 2006
Messaggi: 30
|
up.......
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Oct 2006
Messaggi: 30
|
Possibile che non ci sia nessuno tanto preparato da avere le conoscenze informatiche di c++ per potermi rispondere e risolvere questo problema?
vi prego ho un esame a breve, aiutatemi... ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
Ho scaricato i file del libro e li ho compilati su windows con mingw. Ti spiego come ho fatto con un esempio.
Compiliamo l'esempio line.cpp del capitolo 3: Ti servono i seguenti file: ccc_msw.cpp ccc_msw.h ccc_shap.cpp ccc_shap.h ccc_win.h line.cpp Li metti nella stessa cartella e da prompt esegui: g++ -c *.cpp g++ *.o -lgdi32 Otterrai così l'eseguibile a.exe. Spero ti sia servito, ciao! |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Oct 2006
Messaggi: 30
|
Cosi mi da errore di script console, io all'esame devo usare codeblocks, potresti dirmi quale è il procedimento per compilare e far funzionare il programma quadrato da me scritto?
grazie mille. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
Che errore ti da? Sei su windows anche tu? Il tuo compilatore è mingw?
Da codeblocks penso che tu debba andare nelle opzioni del compilatore, poi andare nella scheda del linker e tra le librerie da linkare aggiungere libgdi32.a che dovresti trovare nella cartella lib di mingw. |
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Oct 2006
Messaggi: 30
|
fatto ma niente, ecco gli errori:
Welcome to the script console! > g++ -c *.cpp ScriptConsole line = (1) column = (9) : error expression expected ScriptConsole line = (1) column = (9) : error expression expected |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
Ok, allora fai così, partiamo da zero.
- Crea un nuovo progetto "Win32 GUI project" - Elimina il file main che si è creato di default - Inserisci nel progetto i file che ho elencato prima - Compila ed Esegui Così dovrebbe andare (a me va). Non devi neanche aggiungere la libreria libgdi32 al linker perché creando quel tipo di progetto lo fa già di default. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:21.