View Full Version : installare librerie con dev-c++
xplorer87
19-01-2006, 13:01
ciao a tutti, sono uno studente ( :mc: ) di ingegneria informatica alle prese col corso di fondamenti 1...
vorrei sapere come faccio ad installare delle librerie non standard (in particolare le time ed employee dell'horstmann) in dev-c++. in quale misteriosa cartella le devo mettere? ho provato senza successo in C:\Programmi\Dev-Cpp\include\c++\3.4.2\ come mi era stato riferito da un amico :x suggerimenti?
ciao e grazie ;)
In C:\Programmi\Dev-Cpp\lib :wtf: se per librerie intendi quello che intendo io
xplorer87
20-01-2006, 20:15
oddio, forse il termine "librerie" e' impreciso e frutto della mia immane niubbaggine in materia di programmazione. comunque, la loro estensione e' .h e .cpp, sono per capirci quelle che si includono cosi':
#include "nomelib.h"
Ah! Li puoi metterli in una cartella con un nome che vuoi nella cartella C:\Programmi\Dev-Cpp\include, es:
in C:\Programmi\Dev-Cpp\include, crei una nuova cartella "horstmann" e ci sposti tutti gli header, e dal tuo sorgente fai #include <horstmann/fileheader.h>
Altrimenti sbatti tutto in C:\Programmi\Dev-Cpp\include insieme a tutti gli altri header e fai gli include normalmente
xplorer87
21-01-2006, 09:45
niente, ho provato in tutti e due i modi da te citati ma non va, continuo ancora ad avere un errore di linking della libreria :(
ho provato a fare un po' di prove, da quello che ho capito il problema e' nei file .h e .cpp, comunque ho provato ad aprirli e ad incollare brutalmente il loro contenuto nel mio programma, che ha funzionato.
questo e' il log di dev-c++
Compilatore: Default compiler
Esecuzione di g++.exe...
g++.exe "D:\Backup\Documents and Settings\Stefano ®\Documenti\C++\impiegati prova.cpp" -o "D:\Backup\Documents and Settings\Stefano ®\Documenti\C++\impiegati prova.exe" -g3 -I"C:\Programmi\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Programmi\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Programmi\Dev-Cpp\include\c++\3.4.2\horstmann" -I"C:\Programmi\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Programmi\Dev-Cpp\include\c++\3.4.2" -I"C:\Programmi\Dev-Cpp\include" -L"C:\Programmi\Dev-Cpp\lib" -g3
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x29b): In function `main':
D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:13: undefined reference to `Employee::Employee(std::string, double)'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x40a):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:16: undefined reference to `Employee::Employee(std::string, double)'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x4d3):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:19: undefined reference to `Employee::get_salary() const'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x4f1):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:19: undefined reference to `Employee::get_name() const'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x518):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:19: undefined reference to `Employee::get_salary() const'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x536):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:19: undefined reference to `Employee::get_name() const'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x6b0):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:24: undefined reference to `Employee::get_salary() const'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x6ca):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:24: undefined reference to `Employee::set_salary(double)'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x6d8):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:25: undefined reference to `Employee::get_salary() const'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x6f6):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:25: undefined reference to `Employee::get_name() const'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x71d):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:25: undefined reference to `Employee::get_salary() const'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x73b):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:25: undefined reference to `Employee::get_name() const'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x8b5):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:29: undefined reference to `Employee::get_salary() const'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x8cf):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:29: undefined reference to `Employee::set_salary(double)'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x8dd):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:30: undefined reference to `Employee::get_salary() const'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x8fb):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:30: undefined reference to `Employee::get_name() const'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x922):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:30: undefined reference to `Employee::get_salary() const'
C:\DOCUME~1\STEFAN~1\IMPOST~1\Temp/ccK8baaa.o(.text+0x940):D:/Backup/Documents and Settings/Stefano ®/Documenti/C++/impiegati prova.cpp:30: undefined reference to `Employee::get_name() const'
collect2: ld returned 1 exit status
Esecuzione terminata
Ziosilvio
21-01-2006, 10:08
Se ho capito bene, il tuo problema non è includere gli header, ma linkare le librerie.
Per linkare una libreria che non si trova nel path standard, devi passare un'opzione al compilatore.
Ho dato un'occhiata al'help in linea di Dev-C++, alla voce "Linking libraries with your project", e ho trovato quanto segue:
Seleziona la voce di menu Project-->Project Options: appare una finestra.
Clicca sulla scheda "Parameters".
Nella tabella "Linker" inserisci le opzioni che ti interezzano, nella forma "meno, elle minuscola, nome-libreria" tutto attaccato.
In realtà ci dovrebbe essere anche un pulsante "Add Library or Object" che dovrebbe fare al caso tuo.
xplorer87
22-01-2006, 12:14
aha grazie, cosi' ho risolto... ma quindi e' possibile linkare librerie solamente mentre faccio un progetto? io generalmente faccio sempre partire un nuovo file sorgente, non un nuovo progetto e l'opzione suddetta esiste solo per i progetti :x
alla fine parlavi di librerie e intendevi gli header ma il problema erano le librerie :asd: va bè hai risolto e tutto bene :)
xplorer87
23-01-2006, 18:48
sisi, ma mi sembra una scappatoia... come faccio per includere gli header senza creare un progetto allora? :x
Librerie! "Linkarsi" alle librerie! Sennò torniamo al punto di partenza :asd:
Comunque potresti usare il compilatore da riga di comando, qualcosa del genere:
mingw32-g++.exe -LC:\Programmi\MinGW\lib -o "C:\tuacartella\nomeeseguibile.exe" [objectdiuntuofile].o -l[tua libreria] -l[altratualibreria]
..oppure usare il MakeFile... onestamente non so come funzioni qui.
xplorer87
24-01-2006, 16:28
oddio si scusa, e' che siccome si mette il comando #include, io mi impiccio sempre a parlarne :x
comunque, alla fine guardando un po' ovunque, ho notato che il comando -l Cartella il compilatore lo faceva... il problema sapete qual era? che anziche' scrivere #include "file.h", dovevo scrivere #include "file.cpp", cioe' anziche' includere l'header, dovevo includere il cpp. non so perche', ma cosi' ha funzionato :x
grazie raga ;)
:mbe:
Ok, allora ora parli di header... mannagg :fagiano:
dovevo scrivere #include "file.cpp", cioe' anziche' includere l'header, dovevo includere il cpp. non so perche', ma cosi' ha funzionato :x
grazie raga ;)
senti io ho il tuo stesso problema :D :D
con l'header di ccc_win.h...
il fatto è che di questo header non esiste il file sorgente, il .cpp... se doppioclicco su ccc_win.h nel file sorgente ci sono tutti riferimenti ad altri .cpp....
aiuto....
mentre di time.h il .cpp esiste di ccc_win.h no.....
come faccio?
xplorer87
04-02-2006, 10:15
ho visto... putroppo non ne ho idea di come si possa fare... se provi semplicemente a copiarlo e rinominarlo in cpp? (soluzione mega-niubba)
altrimenti non so che dirti :(
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.