Frage Wie kompiliere ich c & c ++ Programme?


Ich habe irgendwo gelesen, dass ich 'build essential packager' installieren muss und habe es versucht:

sudo apt-get install build-essential 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
build-essential is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Aber die Datei wird immer noch nicht kompilieren oder laufen ...

gcc -Wall -W -Werror factorial.cpp -o factorial.

gibt mir:

gcc -Wall -W -Werror factorial.cpp -o factorial.
factorial.cpp:3:22: fatal error: iostream.h: No such file or directory
compilation terminated

Das ist mein Stück Code: // WAP, um ein statisches Element zum Berechnen von Fakultät zu demonstrieren

    #include<iostream.h>    
    #include<conio.h>
class fact
{
int i;
    static int count;
    public : 
    void calculate()
    {
        long int fact1=1;
        count++;
        for(i=0;i<=count;i++)
        {
            fact1=fact1*i;
        }
        cout<<"\nFactorial of"<<count<<"="<<fact1<<"\n";
    }
};
int fact :: count;
void main()
{
    int i;
    clrscr();
    fact f;
    for(i=1;i<=15;i++)
    {
        f.calculate();
    }
    getch();
}

Was soll ich tun .. ???


3
2017-07-16 17:23


Ursprung


Dies ist eine Programmierfrage (mit vielen Programmierfehlern) und sollte daher gefragt werden Paketüberfluss. Das einzige plattformspezifische Bit ist die Verwendung von Konio welches für Ubuntu (oder die meisten anderen Unix-ähnlichen Plattformen) nicht verfügbar ist. - dv3500ea


Antworten:


Es gibt mehrere Probleme mit Ihrem Testquellpaket.

Meine Vermutung ist, dass Sie versuchen, mit etwas älteren C ++ - Standards zu kompilieren (gcc Anstatt von g++) und wahrscheinlich basierend auf einer Windows - Routine (mit conio).

Ich habe das Testprogramm für Sie aufgeräumt:

#include <iostream> /* dont need .h */    
using namespace std; /* use a namespace */
/* #include <conio.h>   this is a windows header - dont need */

class fact
{
int i;
    static int count;
    public : 
    void calculate()
    {
        long int fact1=1;
        count++;
        for (i = 2; i <= count; i++)
        {
            fact1 *= i;
        }
        cout << "\nFactorial of " << count << '=' << fact1 << '\n';
    }
};
int fact :: count;

int main(void) /* you had an invalid main declaration */
{
    int i;
    /* clrscr();  not necessary */
    fact f;
    for (i = 1; i <= 15; i++)
    {
        f.calculate();
    }
    /* getch(); not necessary */

    return 0; /* need to return a standard value */
}

dann kompilieren mit

g++ factorial.cpp -o factorial

5
2017-07-16 17:52



Die Berechnungsschleife muss auch bei i = 1 beginnen oder das Ergebnis wird immer 0 sein. - Maxime R.
Guter Kommentar - es gibt viele Probleme mit dieser Quelle - sehr ineffizient usw. Mein Hauptziel für die Antwort war nur, dieses Ding kompilieren zu lassen! - fossfreedom♦


Versuchen: #include <iostream>

https://stackoverflow.com/questions/214230/iostream-vs-iostream-h-vs-iostream-h


0
2017-07-16 17:53





Versuchen Sie einen anderen, nur um zu testen, weil es sagt No such file or directory. Oder vielleicht ist die Quelldatei beschädigt.


-1
2017-07-16 17:36