Repository 32bit  Forum
Repository 64bit  Wiki

problemi compilazione c++ KDevelop

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

problemi compilazione c++ KDevelop

Messaggioda robdb » ven ago 19, 2011 15:43

Scusate la domanda banale ma utilizzo Linux per la prima volta. Devo utilizzare KDevelop per sviluppare un'applicazione crittografica (per l'esattezza il cifrario di Vigenere) in c++. Il codice che ho scritto è questo

Codice: Seleziona tutto
#include <iostream.h>
#include <stdlib.h>
#include <string.h>


int main()
{
        string keyword;
        string messaggio;
        int crypted;
        int real_difference;
        int i=0;
        int k;
        int l;

        cout<<"Enter the keyword : ";
        getline(cin, keyword);



        cout<<"Enter the message you want to crypt : ";
        getline(cin, messaggio);

        k = keyword.length();
        l = messaggio.length();

        loop1:
        if(k < l); //used to even out the keyword and the sentence
        {          //to change each letter               
               keyword = keyword + keyword;
               k = keyword.length();
               if(k < l)
               goto loop1;
        }

                cout<<"\n\n";
                while (i<= messaggio.length()) //records length and uses string as array
                {
                        keyword[i] -= 'a'- 1;


                        if((messaggio[i] + keyword[i]) > 'z') //If crypted letter goes beyond 'z'
                                crypted = 'a' + (keyword[i]+messaggio[i] - 'z') - 1;

                        else if(messaggio[i] == 32) // If letter is a space
                                crypted = messaggio[i];

                        else
                        crypted = messaggio[i] + keyword[i]; //Crypting


                        cout<<(char)crypted; //Prints out the crypted letter
                        i++;

                        if(i>= messaggio.length())
                        break;
                }




        return 0;


        }


eseguo senza problemi le operazioni autotools e configure, ma al momento di eseguire il programmami compare il seguente messaggio di errore:

Codice: Seleziona tutto
cd '/root/prova/debug/./src' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" LC_MESSAGES="C" LC_CTYPE="C"
gmake -k prova

compilazione di main.cpp (g++)

In file included from /usr/lib/gcc/i486-slackware-linux/4.2.4/../../../../include/c++/4.2.4/backward/iostream.h:31,
from /root/prova/src/main.cpp:1:
/
usr/lib/gcc/i486-slackware-linux/4.2.4/../../../../include/c++/4.2.4/backward/backward_warning.h:32:2: warning:
#warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard.
Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>.
To disable this warning use -Wno-deprecated.
/root/prova/src/main.cpp:65:10: warning: no newline at end of file
/root/prova/src/main.cpp:
In function 'int main()':

/root/prova/src/main.cpp:8: error: 'string' was not declared in this scope

/root/prova/src/main.cpp:8: error: expected `;' before 'keyword'

/root/prova/src/main.cpp:9: error: expected `;' before 'messaggio'

/root/prova/src/main.cpp:17: error: 'keyword' was not declared in this scope

/root/prova/src/main.cpp:22: error: 'messaggio' was not declared in this scope

/root/prova/src/main.cpp:28: warning: empty body in an if-statement

/root/prova/src/main.cpp:11: warning: unused variable 'real_difference'

gmake: *** [main.o] Error 1

gmake: Target `prova' not remade because of errors.

*** Uscito con stato: 2 ***


qualche idea su come risolverlo?
grazie
robdb
Linux 1.0
Linux 1.0
 
Messaggi: 1
Iscritto il: ven ago 19, 2011 14:59
Nome Cognome: Roberto Di Bernardo
Slackware: 12.2

Re: problemi compilazione c++ KDevelop

Messaggioda ocman » ven ago 19, 2011 15:50

della gente....lol...
ocman
Linux 2.4
Linux 2.4
 
Messaggi: 239
Iscritto il: gio lug 31, 2008 17:18
Slackware: ArchLinux
Desktop: xfce
Distribuzione: OpenIndiana

Re: problemi compilazione c++ KDevelop

Messaggioda Toni » ven ago 19, 2011 17:51

prova ad inserire
Codice: Seleziona tutto
#include <string>
using namespace std;


e togli #include <string.h>
Avatar utente
Toni
Linux 2.6
Linux 2.6
 
Messaggi: 992
Iscritto il: lun gen 30, 2006 22:08
Località: milano
Slackware: slackware-14
Kernel: 3.10.5
Desktop: i3

Re: problemi compilazione c++ KDevelop

Messaggioda m0rdr3d » ven ago 19, 2011 21:38

Usa iostream e string senza '.h', mentre per stdlib ed altre librerie di sistema (come math, stdio, ecc), utilizza 'cstdlib' invece di 'stdlib.h' (in pratica rimuovi il .h e aggiungi la c come prefisso).

Inoltre, finché hai un solo file, ti conviene utilizzare direttamente g++ per compilare, senza aggiungere complicazioni con gli autotools. Una volta risolto il problema puoi pensare ad un makefile.

Infine, in particolar modo se programmi, ti consiglio di utilizzare un utente che non sia root, in modo da non rischiare di fare danni di nessun tipo con il sistema.

Ciao e buona fortuna!

Edit: dimenticavo il namespace! Come ti è stato suggerito aggiungi "using namespace std;" dopo gli include.
Avatar utente
m0rdr3d
Linux 2.4
Linux 2.4
 
Messaggi: 404
Iscritto il: dom dic 24, 2006 13:40
Slackware: Slackware64-current
Kernel: 3.4.*
Desktop: KDE 4.8.2


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite