Pagine: 1
Mi sono deciso a studiare il linguaggio C++.
Per fare ciò mi sto appoggiando per i primi passi su questa guida, mentre per esercitarmi ho trovato quest'altro aiuto
Complessivamente sono soddisfatto, ma ho notato che gli esercizi puntano sull'ambiente windows, mentre a me servirebbero esercitazioni rivolte a linux.
Quello che ho appena detto sembrerebbe insignificante, ma così non é. Infatti le soluzioni svolte contengono riferimenti o richiami di librerie che non sono sempre replicate per Linux, come, per es. conio.h.
Da due giorni sono fermo ad un'esercitazione che richiama conio.h per potere pulire la console (clrscr()) e per aspettare la pressione di un tasto da parte dell'utente (getch();) pr ima di continuare a scorrere le istruzioni successive.
Visto che per linux conio.h non esiste, ho provato, seguendo indicazioni in rete, ad usare curses.h e ncurses.h, ma senza riuscire a completare la compilazione del programmino. Ho installato "strumenti di sistema" e poi curses.h, ma non è cambiato niente.
Non sapendo più come potere andare avanti, ho anche tentato di comandare la pulizia della console con printf("\X1B[2J"). Nemmeno detta prova ha funzionato.
Mi trovo così bloccato con un'esercitazione che non riesco assolutamente a compilare. Ecco perché sto cercando un altro riferimento per esercitarmi con strumenti pensati per Linux. É possibile?
Grazie per l'eventuale risposta.
Ultima modifica di punico (18-05-2015 08:05:47)
Ciao,
Petrus
Il tuo problema è che non hai installato i pacchetti giusti. Il compilatore giusto lo trovi sotto gcc-c++. Le librerie e i files headers sono tutti i pacchetti con l'estensione -devel, esempio: commoncpp2 ha come pacchetto per lo svilupo commoncpp2-devel. Infine l'IDE per lo sviluppo. Quale? Hai da scegliere tra: KDevelop, Qt Creator, MonkeyStudio, QDevelop, Anjiuta, CodeBlock, CodeLite, Eclipse.
Infine l'IDE per lo sviluppo. Quale? Hai da scegliere tra: KDevelop, Qt Creator, MonkeyStudio, QDevelop, Anjiuta, CodeBlock, CodeLite, Eclipse.
Secondo me questa decisione è prematura; per i primi passi conviene utilizzare un semplice editor di testo (magari configurato con syntax highlightning, numeri di righe e poco altro) e un emulatore di terminale. Poi... Per passare ad un IDE è un attimo, ma per gli inizi rappresenta un ambiente troppo complesso che disorienta e non aiuta.
|| FAS: juliuxpigface || IRC: jpigface || GITHUB: pigjuliux ||
Il tuo problema è che non hai installato i pacchetti giusti. Il compilatore giusto lo trovi sotto gcc-c++. Le librerie e i files headers sono tutti i pacchetti con l'estensione -devel, esempio: commoncpp2 ha come pacchetto per lo svilupo commoncpp2-devel. Infine l'IDE per lo sviluppo. Quale? Hai da scegliere tra: KDevelop, Qt Creator, MonkeyStudio, QDevelop, Anjiuta, CodeBlock, CodeLite, Eclipse.
Non nascondo le mie limitazioni in materia di pacchetti installati. Ho eseguito Yum list e fra i pacchetti installati ho trovato:
gcc-c++.x86_64 4.7.2-8.fc18 @fedora
ncurses.x86_64 5.9-11.20130511.fc18 @updates
ncurses-base.noarch 5.9-11.20130511.fc18 @updates
ncurses-libs.x86_64 5.9-11.20130511.fc18 @updates
Premesso ciò, quando eseguo il comando di compilazione dell'esecitazione di turno, scrivo:
$ c++ Ese_somma_potenza.cpp -o Ese_somma_potenza
Nel programma di esercitazione richiamo la libreria ncurses così:
#include <ncurses.h>
oppure così:
#include <ncurses>
Ebbene, in entrambi i casi, l'avvio della compilazione produce il seguente "fatl error":
$ c++ Ese_somma_potenza.cpp -o Ese_somma_potenza
Ese_somma_potenza.cpp:7:81: fatal error: ncurses: File o directory non esistente
compilation terminated.
Dalle tue indicazioni non ho capito dove sbaglio. Potresti essere più chiaro?
Grazie.
Ciao,
Petrus
In casi analoghi, può aiutare uno
$ yum provides *ncurses.h
Nel caso in questione, ottieni un certo latrace e, appunto, ncurses-devel:e dalla descrizione di quest'ultimo (Development files for the ncurses library) si intuisce probabilmente che il pacchetto che ti interessa è quello.
La filosofia è una disciplina con obiettivi, ma senza regole. La matematica è una disciplina con regole, ma senza obiettivi.
Un giorno ho incontrato un uomo che non aveva né obiettivi né regole. Studiava filosofia della matematica.
d68qdq8dq ha scritto:Infine l'IDE per lo sviluppo. Quale? Hai da scegliere tra: KDevelop, Qt Creator, MonkeyStudio, QDevelop, Anjiuta, CodeBlock, CodeLite, Eclipse.
Secondo me questa decisione è prematura; per i primi passi conviene utilizzare un semplice editor di testo (magari configurato con syntax highlightning, numeri di righe e poco altro) e un emulatore di terminale. Poi... Per passare ad un IDE è un attimo, ma per gli inizi rappresenta un ambiente troppo complesso che disorienta e non aiuta.
Scusa arkanoid, ma ho letto solo ora la tua risposta e sono d'accordo con te. Infatti, in questa prima fase, utilizzo semplicemente gedit.
In casi analoghi, può aiutare uno
$ yum provides *ncurses.h
Nel caso in questione, ottieni un certo latrace e, appunto, ncurses-devel:e dalla descrizione di quest'ultimo (Development files for the ncurses library) si intuisce probabilmente che il pacchetto che ti interessa è quello.
Fatto:
# yum provides *ncurses.h
Plugin abilitati:langpacks, presto, refresh-packagekit
adobe-linux-x86_64 | 951 B 00:00
google-chrome | 951 B 00:00
rpmfusion-free-updates | 3.3 kB 00:00
rpmfusion-nonfree-updates | 3.3 kB 00:00
updates/18/x86_64/metalink | 3.6 kB 00:00
latrace-0.5.11-2.fc18.i686 : LD_AUDIT feature frontend for glibc 2.4+
Repo : fedora
Corrispondenza trovata in:
Nome file : /etc/latrace.d/headers/ncurses.h
latrace-0.5.11-2.fc18.x86_64 : LD_AUDIT feature frontend for glibc 2.4+
Repo : fedora
Corrispondenza trovata in:
Nome file : /etc/latrace.d/headers/ncurses.h
ncurses-devel-5.9-7.20121017.fc18.i686 : Development files for the ncurses
: library
Repo : fedora
Corrispondenza trovata in:
Nome file : /usr/include/ncursesw/ncurses.h
Nome file : /usr/include/ncurses.h
Nome file : /usr/include/ncurses/ncurses.h
ncurses-devel-5.9-7.20121017.fc18.x86_64 : Development files for the ncurses
: library
Repo : fedora
Corrispondenza trovata in:
Nome file : /usr/include/ncursesw/ncurses.h
Nome file : /usr/include/ncurses.h
Nome file : /usr/include/ncurses/ncurses.h
ncurses-devel-5.9-11.20130511.fc18.i686 : Development files for the ncurses
: library
Repo : updates
Corrispondenza trovata in:
Nome file : /usr/include/ncursesw/ncurses.h
Nome file : /usr/include/ncurses.h
Nome file : /usr/include/ncurses/ncurses.h
ncurses-devel-5.9-11.20130511.fc18.x86_64 : Development files for the ncurses
: library
Repo : updates
Corrispondenza trovata in:
Nome file : /usr/include/ncursesw/ncurses.h
Nome file : /usr/include/ncurses.h
Nome file : /usr/include/ncurses/ncurses.h
Tuttavia, la procedura di compilazione finisce sempre con
$ c++ Ese_somma_potenza.cpp -o Ese_somma_potenza
Ese_somma_potenza.cpp:7:83: fatal error: ncurses.h: File o directory non esistente
:gratt:
Ciao,
Petrus
Ho dato una letta piuttosto veloce ma credo che ci sia stato un equivoco, il comando
$ yum provides *ncurses.h
serve per individuare quale pacchetto provvede (provides) a fornire un file.
Una volta individuato il pacchetto lo si può installare con il comando (nel tuo caso)
# yum install ncurses-devel
Ciao
Andrea Malfatti
:wall:
Finalmente ho capito.
Ho potuto installare ncurses ed ho potuto portare a termine la prima compilazione. Ora posso continuare con la correzione degli errori riscontrati e continuare con le prove.
Grazie a tutti.
Ciao.
Ciao,
Petrus
Pagine: 1