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.
Rispondi
robdb
Linux 0.x
Linux 0.x
Messaggi: 1
Iscritto il: ven 19 ago 2011, 15:59
Nome Cognome: Roberto Di Bernardo
Slackware: 12.2

problemi compilazione c++ KDevelop

Messaggio da robdb »

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

ocman
Linux 2.x
Linux 2.x
Messaggi: 239
Iscritto il: gio 31 lug 2008, 18:18
Slackware: ArchLinux
Desktop: xfce
Distribuzione: OpenIndiana

Re: problemi compilazione c++ KDevelop

Messaggio da ocman »

della gente....lol...

Avatar utente
Toni
Linux 3.x
Linux 3.x
Messaggi: 999
Iscritto il: lun 30 gen 2006, 22:08
Slackware: slackware-14
Kernel: 3.10.5
Desktop: i3
Località: milano

Re: problemi compilazione c++ KDevelop

Messaggio da Toni »

prova ad inserire

Codice: Seleziona tutto

#include <string>
using namespace std;
e togli #include <string.h>

Avatar utente
m0rdr3d
Linux 2.x
Linux 2.x
Messaggi: 404
Iscritto il: dom 24 dic 2006, 13:40
Slackware: Slackware64-current
Kernel: 3.4.*
Desktop: KDE 4.8.2

Re: problemi compilazione c++ KDevelop

Messaggio da m0rdr3d »

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.

Rispondi