PDA

View Full Version : Problema eclipse(linguaggio c)


xbrok3nx7
07-05-2015, 16:10
Ho un problema con eclipse,praticamente dopo aver creato 2 progetti:il primo come libreria statica(contenente il file.c e il file.h,rispettivamente statistics.c e statistics.h),nome "statistics" e l'altro:il main e avendo aggiunto da proprietà,al progetto main,la libreria statistics e il relativo percorso della cartella dove sono contenuti .c e .h,quest'ultimo ovviamente anche su includes,dopo aver fatto build mi dice di non trovare lstatistics,come posso risolvere?Avrei un secondo problema forse meno importante,mi spunta spesso tra gli errori g++ not found in PATH e non so da cosa è dato e come risolverlo

xbrok3nx7
07-05-2015, 16:47
comunque se g++ e' not found in PATH... direi che devi aggiungere il percorso dell'eseguibile alla variabile d'ambiente PATH (presumibilmente sei su windows quindi forse cerca in mingw...)
fatto e rifatto miliardi di volte xD

xbrok3nx7
07-05-2015, 17:17
aiutatemi per favore :cry:

xbrok3nx7
07-05-2015, 17:44
l'avrai fatto male...

come l'hai fatto? cosa hai aggiunto? se apri un prompt e scrivi g++ cosa accade?

l'altro problema non si capisce...

in ogni caso, perche' stai usando eclipse per C/C++? ci sono IDE migliori...e se sei agli inizi con semplici progetti, il caro vecchio makefile o l'uso di scons sono piu' semplici e "didattici"...
allora ho aggiunto alla variabile d'ambiente Path il percorso di mingw,come spiegato su varie guide,se scrivo g++ sul prompt mi dice che non è riconosciuto però.Riguardo l'altro problema:ho creato 2 progetti,un main e una libreria statica,praticamente il main non mi trova la libreria statica,nonostante abbia aggiunto tutto da proprierties e usato #include correttamente.
Sono costretto ad usare eclipse:sia perchè il mio prof all'uni vuole che usaiamo quello e da' assistenza solo su qeullo e conseguentemente tutto ciò che facciamo(cunit,doxygen)lo facciamo su eclipse,non sono più proprio agli inizi xD e quindi mi servono IDE che supportino certi programmi

xbrok3nx7
07-05-2015, 17:45
l'altro problema: -lstatistics presuppone che tu stia cercando di linkare la libreria libstatistics.so (o della corrispondente DLL in windows (credo) ), per cui ... tu la libreria l'hai creata oppure no?
si è la libreria statica che ho chiamato statistics(perchè fa tipo media,mediana,varianza di un vettore inserito dall'utente)

xbrok3nx7
07-05-2015, 18:53
allora di file libstatistics.a ne stanno 2 nel progetto statistics uno in archives e l'altro in src di Debug,da propierties mi fa includere solo quella in debug,se la includo al posto di quella di prima mi scompare l'errore di lstatistics ma non mi trova poi statistics.h,se la includo insieme a quella di prima l'errore lstatistics rimane.
Il percorso l'avevo aggiunto correttamente come hai detto
(anch'io ho capito pian piano che eclipse è più adatto per linguaggi come java che c/c++,purtroppo non posso farci nulla xD)

vbextreme
07-05-2015, 20:19
ma usi g++ per compilare il c?

concordo sul cambiare ide, ne esistono decisamente dei migliori soprattutto sotto windows.

pabloski
07-05-2015, 22:14
E' evidente che non hai configurato il CDT. Guardati questa guida http://max.berger.name/howto/cdt/

In alternativa o cambi IDE o sistema operativo.

xbrok3nx7
08-05-2015, 10:23
Grazie per le risposte,ora mi guardo bene questa guida
Comunque non chiedetemi di cambiare IDE perchè l'ho detto varie volte che non posso.Mi servirebbe aiuto anche e sporattutto per l'errore lstatistics,perchè quello del g++ non me lo fa sempre e non so se poi posso eseguire lo stesso il programma

xbrok3nx7
08-05-2015, 10:56
allora secondo la guida ho provato ascrivere make --version e non me lo riconosce,ma g++ --versione gcc --version sono apposto
ho seguito la guida per configurare tutto ma non è cambiato assolutamente nulla,aiutatemi pls :cry:

ingframin
08-05-2015, 11:59
@xbrok3nx7:

Ma usare Codeblocks? Contiene già Mingw ed è pre configurato, è un ottimo ide ed è free.
http://www.codeblocks.org/

Inoltre consente di fare tutto quello che si fa installando Mingw a manina, incluso scriversi i makefile e chiamare mingw dalla riga di comando se necessario.

Conta pure che Eclipse ha uno strano "bug" quando usi printf, per cui se non "flushi"(Mio Dio che parola orrenda...) il buffer, Eclipse non stampa niente in console:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=173732

xbrok3nx7
08-05-2015, 12:04
@xbrok3nx7:

Ma usare Codeblocks? Contiene già Mingw ed è pre configurato, è un ottimo ide ed è free.
http://www.codeblocks.org/

Inoltre consente di fare tutto quello che si fa installando Mingw a manina, incluso scriversi i makefile e chiamare mingw dalla riga di comando se necessario.

Conta pure che Eclipse ha uno strano "bug" quando usi printf, per cui se non "flushi"(Mio Dio che parola orrenda...) il buffer, Eclipse non stampa niente in console:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=173732
Come ho detto varie volte non posso usare altri programmi al posto di eclipse

xbrok3nx7
08-05-2015, 12:28
devi installare make, su mingw credo ci sia l'opzione, devi far girare l'installer e spuntare make (o gmake o quello che c'e')
installato praticamente tutto quello che conteneva la parola make e anche qualche altro pacchetto ma niente

xbrok3nx7
08-05-2015, 14:44
http://stackoverflow.com/questions/11772602/how-to-compile-makefile-using-mingw

credo che comunque stai cercando di risolvere un problema che e' al di la' delle tue competenze.

install cygwin and usa la cygwin toolchain in eclipse. e' l'approccio meno traumatico (ma sempre traumatico rimane).

DIGRESSIONE 1:

hai detto che devi usare eclipse perche' e' l'unico IDE su cui il prof da supporto: la domanda sorge spontanea, il prof non vi ha spiegato nemmeno come configurarlo su windows??

DIGRESSIONE 2:

e' passato un po' di tempo da quando ho fatto informatica all'uni, ma ai miei tempi il prof consigliava DJGPP (sono vecchio diamine), ma di certo non obbligava nessuno ad usarlo se era in grado di usare alternative equivalenti (o migliori).

qua ti sono state spiegate tutte alternative migliori a quello che stai cercando di fare... io fossi in te assumerei un po' di iniziativa e darei un'occhiata a tutti i suggerimenti che ti sono stati dati
vedo cosa succede con cygwin
Ci ha messo a disposizione una sua guida su come configurarlo e l'ho seguita passo passo
Diciamo che non ha detto esplicitamente usate eclipse altrimenti vi ammazzo! xD,però ci ha "consigliato" di usarlo,perchè in caso di problemi dà assistenza solo su quello e soprattutto,tutte le nuove cose che facciamo sono tutte spiegate su eclipse e su altri IDE dovrei mettermi io a vedere se funzionano e come
(prima che me lo chiedi ho chiesto anche a lui di aiutarmi con il problema della lstatistics,ha provato a risolverlo ma alla fine non ci è riuscito nemmeno lui e mi ha consigliato di ricreare il progetto con altri nomi,perchè quello prima avea punti,spazi e virgole di troppo,ne ho fatto un altro esattamente con i nomi che mi ha suggerito lui ma nulla)
Comunque questo problema di lstatistics in altri progetti che ho fatto non era apparso,mi è capitato solo in questo e quello prima(l'unica cosa che ho fatto è stato installare eclox,che sarebbe doxygen per eclipse,ma non penso sia dato da quello il problema)

vbextreme
08-05-2015, 15:21
A quanto pare che dia supporto solo a eclipse non serve proprio a nulla...
Sei su windows? E allora scaricati il miglior ide per tale s.o. sua maestà il Visual Studio. Naturalmente è Gratuito in versione Express.
Dopotutto un ide serve relativamente poco per programmare in c, anzi,io se fossi il tuo professore obbligherei l'uso del bloc note + un qual si voglia compilatore, magari quello della intel!
Usare il porting del gcc x windows non è proprio il massimo, considerando tutte quelle piccole problematiche che ha fa più danni che altro.Sarebbe piu costruttivo usare il vero gcc o su macchina virtuale o direttamente sulla piu amichevole distro linux.

xbrok3nx7
08-05-2015, 15:34
A quanto pare che dia supporto solo a eclipse non serve proprio a nulla...
Sei su windows? E allora scaricati il miglior ide per tale s.o. sua maestà il Visual Studio. Naturalmente è Gratuito in versione Express.
Dopotutto un ide serve relativamente poco per programmare in c, anzi,io se fossi il tuo professore obbligherei l'uso del bloc note + un qual si voglia compilatore, magari quello della intel!
Usare il porting del gcc x windows non è proprio il massimo, considerando tutte quelle piccole problematiche che ha fa più danni che altro.Sarebbe piu costruttivo usare il vero gcc o su macchina virtuale o direttamente sulla piu amichevole distro linux.
eh lo so,ma sono costetto ad utilizzare quello che uso,comunque reinstallando eclipse, c'è qualche remota possibilità che scompaia questo errore?

xbrok3nx7
08-05-2015, 16:49
Comunque se volete vedere con degli screen il mio problema,finalmente hanno accettato il mio topic sul forum eclipse https://www.eclipse.org/forums/index.php/t/1066373/

vbextreme
08-05-2015, 17:07
a parte alcuni errori che non vengono rilevati correttamente( constatato dai log di molti utenti che su mingw non ottenevano taluni errori che su GCC si hanno) c'è anche il fattore dell'arrotondamento che rispetto al GCC originale o altri compilatori quali quello di MS o Borland viene eseguito diversamente, obbligando la somma di 0,5 per ottenere i giusti valori.
Lo stesso link delle librerie richiede,a volte, delle piccole stranezze, ma forse sto uscendo dal thread.

L' unica cosa che bisognerebbe chiedersi è:
-Perché devo usare un porting di un compilatore linux su windows quando ne esistono a trilioni fatti meglio?
-Perché devo usare un IDE, pesante e progettato per il java per scrivere codice c?
-Quando usciro dall'Università le grandi aziende che IDE useranno sotto windows?code blocks? eclipse? no! Borland! Visual Studio! e che senso ha imparare tali IDE? BHO!
-Una volta imparato Eclipse sarò in grado di usare il. VS? si, ma con gran fatica iniziale.
-Una volta imparato VS sarò in grado di usare Eclipse? si,ma non lo farai mai e poi mai, guideresti una punto avendo sotto il sedere una Ferrari???

xbrok3nx7
08-05-2015, 17:36
a parte alcuni errori che non vengono rilevati correttamente( constatato dai log di molti utenti che su mingw non ottenevano taluni errori che su GCC si hanno) c'è anche il fattore dell'arrotondamento che rispetto al GCC originale o altri compilatori quali quello di MS o Borland viene eseguito diversamente, obbligando la somma di 0,5 per ottenere i giusti valori.
Lo stesso link delle librerie richiede,a volte, delle piccole stranezze, ma forse sto uscendo dal thread.

L' unica cosa che bisognerebbe chiedersi è:
-Perché devo usare un porting di un compilatore linux su windows quando ne esistono a trilioni fatti meglio?
-Perché devo usare un IDE, pesante e progettato per il java per scrivere codice c?
-Quando usciro dall'Università le grandi aziende che IDE useranno sotto windows?code blocks? eclipse? no! Borland! Visual Studio! e che senso ha imparare tali IDE? BHO!
-Una volta imparato Eclipse sarò in grado di usare il. VS? si, ma con gran fatica iniziale.
-Una volta imparato VS sarò in grado di usare Eclipse? si,ma non lo farai mai e poi mai, guideresti una punto avendo sotto il sedere una Ferrari???
Questo discorso bisognerebbe farlo alle università,sono anch'io dell'idea che sarebbe meglio usare lo stesso programma che userò in un lavoro futuro e che se eclipse è stato fatto per java,sarà sembre peggio di un IDE progettato per c,ma evidentemente altri hanno opinioni differenti o è una questione di comodità loro probabilmente
Comunque quando creo un nuovo progetto su eclipse seleziono mingw come compilatore e non gcc,non so però se questo c'entri qualcosa con il vostro discorso

vbextreme
08-05-2015, 17:46
il tdm-mingw è il porting del GCC di linux per windows, quando si parla di GCC sotto windows dunque si parla del tdm-mingw, dato che il GCC non esiste per Windows!
E non penso che Stallman abbia in mente di farlo!!!

xbrok3nx7
08-05-2015, 17:53
il tdm-mingw è il porting del GCC di linux per windows, quando si parla di GCC sotto windows dunque si parla del tdm-mingw, dato che il GCC non esiste per Windows!
E non penso che Stallman abbia in mente di farlo!!!
capito,grazie della spiegazione :D
Volgio ricordare ancora che se volete vedere il problema a cui mi riferisco in questo topic,con degli screen https://www.eclipse.org/forums/index.php/t/1066373/

vbextreme
08-05-2015, 18:05
passa il path completo al compilatore con:
-Lc:\path\libreria
Poi dovrebbe essere -lstatistics

La libreria l'hai scritta correttamente?
ll'hai compilata con g++ o gcc?
Ricordo che g++ è per c++ e gcc per c anche se gli odierni compilatori c++ compilano benissimo la controparte c

xbrok3nx7
08-05-2015, 18:11
passa il path completo al compilatore con:
-Lc:\path\libreria
Poi dovrebbe essere -lstatistics

La libreria l'hai scritta correttamente?
ll'hai compilata con g++ o gcc?
Ricordo che g++ è per c++ e gcc per c anche se gli odierni compilatori c++ compilano benissimo la controparte c
aspetta in che senso lo passo al compilatore
La libreria l'ho creata bene,non ci ho ancora scritto però tutto quanto,ma dovrebbe già trovarla,ho usato mingw quindi gcc

vbextreme
08-05-2015, 18:26
mingw ha sia il gcc che il g++, tralasciamo un attimo il discorso.
Ora dove hai scritto "statistics" scrivi "c:\blablabla\libstatistics.a"
se non funziona scrivi:
-lstatistics
vai in compilatore flags o qualcosa che ci assomigli e scrivi "-Lc:\blabla"

scusa se sono stato un po troppo spartano ma dal phone fatico a far meglio

xbrok3nx7
08-05-2015, 18:38
mingw ha sia il gcc che il g++, tralasciamo un attimo il discorso.
Ora dove hai scritto "statistics" scrivi "c:\blablabla\libstatistics.a"
se non funziona scrivi:
-lstatistics
vai in compilatore flags o qualcosa che ci assomigli e scrivi "-Lc:\blabla"

scusa se sono stato un po troppo spartano ma dal phone fatico a far meglio
ho provato -lstatistics,ma mi dice impossibile trovare -l-lstatistics
dove mi hai detto di scrivere al posto di statistics,devo scrivere tipo c:\user\workspace\statistics\debug\libstatistics.a\ o ho capito male?
per il compilator flags ho visto in internet e sarebbe su miscellaneous e poi su other flags e lì devo aggiungere -Lc:\user\worspace\statistics\debug\libstatistics.a\ ?
se non puoi rispondermi ora dal telefono,fai con calma,rispondimi pure dopo quando puoi

vbextreme
08-05-2015, 19:33
OK Eclipse ti mette già il -l .....ehehehe
cmq il discorso è semplice, devi dire al compilatore dove trovate tale libreria, da riga di comando basterebbe -L.... mentre su un IDE bisogna leggersi il manuale e in questo caso: help Eclipse (http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.cdt.doc.user%2Ftasks%2Fcdt_t_proj_paths.htm), in pratica devi imparare come includere un path x le librerie.

vbextreme
09-05-2015, 05:58
si forse era meglio che mi riferissi al mingw32, la base delle varie fork che poi sono state fatte.
Rimane il fatto che cambia poco tra tdm-mingw e il mingw-w64 se non che il secondo è un pò piu di nicchia con qualche complessità in piu su windows alquanto inutili per un novizio o buona parte dei progetti creati direttamente su windows.Mentre risulta piu comodo per un porting di un progetto unix su windows.



è semplicemente il gcc ricompilato per windows
Non è proprio cosi, non basta prendere il sorgente e riuscirlo a compilare su windows, bisogna modificarlo radicalmente, i due sistemi operativi infatti lavorano in maniera MOLTO diversa.
Nonostante l'ottimo lavoro fatto, tale porting non può competere con i compilatori "nativi" per Windows, non certo per causa del gcc che è uno tra i migliori compilatori in circolazione, ma perchè semplicemente è stato progettato per unix in generale e non per windows.

xbrok3nx7
09-05-2015, 10:34
OK Eclipse ti mette già il -l .....ehehehe
cmq il discorso è semplice, devi dire al compilatore dove trovate tale libreria, da riga di comando basterebbe -L.... mentre su un IDE bisogna leggersi il manuale e in questo caso: help Eclipse (http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.cdt.doc.user%2Ftasks%2Fcdt_t_proj_paths.htm), in pratica devi imparare come includere un path x le librerie.
ma il fatto che non mi trovi una libreria può essere che non sia scritto bene il codice dell stessa?(non parlo degli #include)

vbextreme
09-05-2015, 15:01
si e no.Posta il codice per sicurezza.
Hai letto Eclipse help?
hai incluso il path?
cerca lib path o tutto ciò che ci assomiglia che permette di inserite delle "cartelle" e metti quella che ti serve.
perché ti ostini ad usare una cosa che non userai mai più?o il tuo scopo è java?

xbrok3nx7
09-05-2015, 16:39
si e no.Posta il codice per sicurezza.
Hai letto Eclipse help?
hai incluso il path?
cerca lib path o tutto ciò che ci assomiglia che permette di inserite delle "cartelle" e metti quella che ti serve.
perché ti ostini ad usare una cosa che non userai mai più?o il tuo scopo è java?
ora vedo per il path
dal prossimo anno faremo solo java

vbextreme
09-05-2015, 19:48
help eclipse (http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.cdt.doc.user%2Freference%2Fcdt_u_prop_general_pns_libpath.htm) apri quella finestra, e li ci metti il percorso.

xbrok3nx7
10-05-2015, 10:17
allora ho prtovato a farlo ma mi dava un altro errore al posto di quello.Ho rifatto il progetto in un'altra workspace e ho notato che l'errore appare solo dopo aver fatto build project,forse devo prima finire il codice boh,perchè ora ho aggiunto solo gli #include.Ho provatoa vedere su library path anche qua ma questa volta c'è già quello corretto,forse me l'ha aggiunto bene sta volta,comunque ora provo a finire il codice e vi faccio sapere se così va

vbextreme
10-05-2015, 18:18
bene!
noi siamo qua.