|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2003
Città: Provincia di Roma
Messaggi: 817
|
Problema di Esecuzione in C++
Salve,
ho un problema in C++ che non riesco a capire da cosa possa essere causato! Praticamente uso la piattaforma di programmazione Microsoft Visual C++ 6.0 (aggiornata). Ho scritto questo semplice programma, aggiunge alla var tipo Time, wake-up un dato nummero di secondi, ecco il prog: #include <iostream> using namespace std; #include "ccc_time.h" int main() { Time wake_up(9, 0, 0); wake_up.add_seconds(1000); /* mille secondi dopo */ cout << wake_up.get_hours() << ":" << wake_up.get_minutes() << ":" << wake_up.get_seconds() << "\n"; return 0; } Quando vado a fare compile non mi dà nessun errore: --------------------Configuration: Time - Win32 Debug-------------------- Compiling... Time.cpp Time.obj - 0 error(s), 0 warning(s) Il Problema sorge ora ovvero nel momento dell'esecuzione, infatti quando vado a fare l'Execute Program ecco cosa mi dà nel build: --------------------Configuration: Time - Win32 Debug-------------------- Linking... Time.obj : error LNK2001: unresolved external symbol "public: int __thiscall Time::get_hours(void)const " (?get_hours@Time@@QBEHXZ) Time.obj : error LNK2001: unresolved external symbol "public: int __thiscall Time::get_minutes(void)const " (?get_minutes@Time@@QBEHXZ) Time.obj : error LNK2001: unresolved external symbol "public: int __thiscall Time::get_seconds(void)const " (?get_seconds@Time@@QBEHXZ) Time.obj : error LNK2001: unresolved external symbol "public: void __thiscall Time::add_seconds(int)" (?add_seconds@Time@@QAEXH@Z) Time.obj : error LNK2001: unresolved external symbol "public: __thiscall Time::Time(int,int,int)" (??0Time@@QAE@HHH@Z) Debug/Time.exe : fatal error LNK1120: 5 unresolved externals Error executing link.exe. Time.exe - 6 error(s), 0 warning(s) Tengo a precisare che le due librerie che vengono usate sono presenti nei miei file include. Aiutatemi, quale puo essere la causa, e l'eventuale soluzione? Grazie! |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Feb 2004
Città: Rimini
Messaggi: 247
|
dovresti provare a guardare nelle opzioni di progetto, di solito quell'errore in fase di link lo da se certe librerie non sono linkate al progetto, non basta che siano nelle cartelle delle librerie di c++ e che siano incluse all'inizio del file tramite #include ...
__________________
"Se per caso il C non fosse sufficiente il Vero Programmatore lavorera' in assembler, se neppure questo fosse sufficiente allora il lavoro non e' fattibile, ma la cosa e' impossibile, un Vero Programmatore in C ed assembler puo' fare TUTTO, per definizione." |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
|
hai aggiunto il .cpp associato a ccc_time.h al progetto, vero?
|
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: Dec 2003
Città: Provincia di Roma
Messaggi: 817
|
Quote:
Quote:
|
||
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Feb 2004
Città: Rimini
Messaggi: 247
|
significa che se questo file h che tu includi necessita di librerie (*.lib) queste vanno messe nella cartella lib del compilatore e a progetto aperto, apri le opzioni di progetto dal menu di visual studio (project->option mi sembra), trovi una scheda chiamata "link" con dentro una casella di testo con un sacco di nomi *.lib, tu in fondo a quetso elenco aggiungi anche il tuo se no il progetto non vede da solo le librerie nella cartella del compilatore
__________________
"Se per caso il C non fosse sufficiente il Vero Programmatore lavorera' in assembler, se neppure questo fosse sufficiente allora il lavoro non e' fattibile, ma la cosa e' impossibile, un Vero Programmatore in C ed assembler puo' fare TUTTO, per definizione." |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Dec 2003
Città: Provincia di Roma
Messaggi: 817
|
Ho fatto come mi hai detto ora mi dà questo errore nell'execute build:
--------------------Configuration: Time - Win32 Debug-------------------- Linking... LINK : fatal error LNK1104: cannot open file "ccc_time.lib" Error executing link.exe. Time.exe - 1 error(s), 0 warning(s) E' migliorata la situazione? |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Feb 2004
Città: Rimini
Messaggi: 247
|
controlla prima di tutto che il file .lib sia nella cartella lib del compilatore,
per esempio C:\[Program Files Folder]\Microsoft VisualStudio\VC98\Lib e che nella cartella system di winzozz ci sia lo stesso file però .dll se no non va niente... inoltre il file .h deve stare qua : C:\[Program Files Folder]\Microsoft Visual Studio\VC98\Include prova poi fammi sapere
__________________
"Se per caso il C non fosse sufficiente il Vero Programmatore lavorera' in assembler, se neppure questo fosse sufficiente allora il lavoro non e' fattibile, ma la cosa e' impossibile, un Vero Programmatore in C ed assembler puo' fare TUTTO, per definizione." |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Dec 2003
Città: Provincia di Roma
Messaggi: 817
|
Allora andiamo con ordine:
-Il file .lib non cè nella cartella lib del compilatore!
-Qui: C:\WINDOWS\system, non cè il .dll -Qui: C:\Programmi\Microsoft Visual Studio\VC98\Include, cè sia ccc_time.h che ccc_time.cpp, (ce li ho messi io entrambi e credevo che bastassero) Che pensi? |
|
|
|
|
|
#9 | |
|
Member
Iscritto dal: Feb 2004
Città: Rimini
Messaggi: 247
|
partiamo da zero :
dove hai preso ccc_time.h e ccc_time.cpp ? roba fatta da te? Quote:
vai sul menu build e fate click su build ccc_time.lib. vai nella cartella di progetto prendi il file.lib e lo copi nella cartella del compilatore se non hai i sorgenti non saprei.. bisogna che ci do un occhiata... mi posti il .cpp e il .h in pvt?
__________________
"Se per caso il C non fosse sufficiente il Vero Programmatore lavorera' in assembler, se neppure questo fosse sufficiente allora il lavoro non e' fattibile, ma la cosa e' impossibile, un Vero Programmatore in C ed assembler puo' fare TUTTO, per definizione." |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Dec 2003
Città: Provincia di Roma
Messaggi: 817
|
Io stò seguendo un libro chiamato "Fondamenti di C++" di Cay Horstmann della McGrawHill.
Cè lesercizio che ho riportato sopra che comporta questa libreria TIME, allora dato che non è una lib. standad, l'ho dovuta scaricare dal sito del libro, e mi sono stati dati i due file, ccc_time.h e ccc_time.ccp, e questi li ho messi nella cartella Include! Quindi (purtroppo) non è roba fatta da me! Ora metto i file! Ti ringrazio di cuore, per la tua diponibilità! GRAZIE! Ultima modifica di Prometeo98 : 11-03-2004 alle 19:09. |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Dec 2003
Città: Provincia di Roma
Messaggi: 817
|
Ecco i file:
Scusa ma non sono riuscito a mettere l'allegato nei PVT! |
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Feb 2004
Città: Rimini
Messaggi: 247
|
ok dovrei aver risolto...
1-Apri visual studio e fai New project 2-Crea una Win32 Static Library (come nome puoi mettere per esempio time) lasciando tutte le opzioni come ti dice lui 3-Con Add File to project gli aggiungi i due file .cpp e .h che mi hai mandato 4-Nel menu build fai Build "time.lib" 5-Salva e chiudi tutto 6-Nella cartella del progetto nella sottocartella Debug trovi time.lib lo copi e lo incolli nella dir Lib del compilatore 7-Copi e incolli i due file .cpp e .h nella dir Include 8-Apri il progetto del tuo prog che hai postato 9-Nel menu project->settings alla linguetta links aggiungi in fondo time.lib 10-Rebuil All da me cosi va....
__________________
"Se per caso il C non fosse sufficiente il Vero Programmatore lavorera' in assembler, se neppure questo fosse sufficiente allora il lavoro non e' fattibile, ma la cosa e' impossibile, un Vero Programmatore in C ed assembler puo' fare TUTTO, per definizione." |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Dec 2003
Città: Provincia di Roma
Messaggi: 817
|
Ok! Grazie! Ti farò sapere!
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Dec 2003
Città: Provincia di Roma
Messaggi: 817
|
Scusami nel momento in cui vado a fare build "time.lib" mi dà questo errore:
--------------------Configuration: time - Win32 Debug-------------------- Compiling... ccc_time.cpp c:\documents and settings\codici libro c. h\codice\cccfiles\ccc_time.cpp(4) : error C2871: 'std' : does not exist or is not a namespace Error executing cl.exe. time.lib - 1 error(s), 0 warning(s) Cosa può essere? Ultima modifica di Prometeo98 : 11-03-2004 alle 22:30. |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Perchè creare il .lib ?!?!?!?
Ti fai un progetto...e metti in "include files" ccc_time.h... In source file ccc_time.cpp... Poi crei il tuo file .cpp in source file e ci metti il main e tutto il codice che vuoi...compile e sei a cavallo... |
|
|
|
|
|
#16 | |
|
Member
Iscritto dal: Feb 2004
Città: Rimini
Messaggi: 247
|
giusto perchè se deve fare altri prog almeno ha la libreria in memoria e non deve stare ad aggiungere il file al progetto tutte le volte...
però puoi anche fare cosi.... Quote:
__________________
"Se per caso il C non fosse sufficiente il Vero Programmatore lavorera' in assembler, se neppure questo fosse sufficiente allora il lavoro non e' fattibile, ma la cosa e' impossibile, un Vero Programmatore in C ed assembler puo' fare TUTTO, per definizione." |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:24.



















