Har installerat g++ 4.1.2-16ubuntu2 och dess beroenden. Min fråga är vad jag behöver mer. Verkar som om något väsentligt saknas, eftersom i stort sett samtliga enkla exempel jag provat ger många felmeddelanden vid kompilering. Kan väl ge ett exempel, annars blir detta kanske lite väl flummigt:
Kopierade följande text in i emacs, sparade, avslutade och kompilerade med g++ (vilket också får mig att tänka på att jag i början av 90-talet kompilerade C-kod direkt i emacs, men nu kommer jag inte på hur man gör det, men det går säkert att hitta på nätet hur man gör).
Så här ser programexemplet ut som jag snodde rakt av härifrån:
Kod: Markera allt
#include <fstream>
#include <string>
int main (int argc, char * argv[]) {
int Antal = 0;
string Ord;
// har vi tillräckligt parametrar?
if ( argc != 2 ) {
cout << "Fel antal parametrar!" << endl;
cout << "Användning: " << argv[0] << " filnamn" << endl;
exit ( EXIT_FAILURE );
}
// öppna en fil
ifstream Data ( argv[1] );
if ( ! Data ) {
// kunde inte öppna filen
cout << "Kunde inte öppna filen: " << argv[1] << endl;
exit ( EXIT_FAILURE );
}
// iterera över all ord i filen
while ( Data >> Ord ) {
// öka antalet lästa ord
Antal++;
}
// skriv ett svar
cout << "Läste " << Antal << " ord." << endl;
}
Kod: Markera allt
$ g++ Exempel.c++
Exempel.c++: In function "int main(int, char**)":
Exempel.c++:6: fel: "string" deklarerades inte i detta definitionsområde
Exempel.c++:6: fel: expected `;' before "Ord"
Exempel.c++:10: fel: "cout" deklarerades inte i detta definitionsområde
Exempel.c++:10: fel: "endl" deklarerades inte i detta definitionsområde
Exempel.c++:16: fel: "ifstream" deklarerades inte i detta definitionsområde
Exempel.c++:16: fel: expected `;' before "Data"
Exempel.c++:17: fel: "Data" deklarerades inte i detta definitionsområde
Exempel.c++:19: fel: "cout" deklarerades inte i detta definitionsområde
Exempel.c++:19: fel: "endl" deklarerades inte i detta definitionsområde
Exempel.c++:24: fel: "Data" deklarerades inte i detta definitionsområde
Exempel.c++:24: fel: "Ord" deklarerades inte i detta definitionsområde
Exempel.c++:30: fel: "cout" deklarerades inte i detta definitionsområde
Exempel.c++:30: fel: "endl" deklarerades inte i detta definitionsområde
$
Så förmodligen är det något jag behöver installera, eller?
Testade också att byta ut de första två raderna mot följande, vilket också misslyckades:
Kod: Markera allt
#include <iostream.h>
#include <fstream.h>
#include <string.h>
Kod: Markera allt
$ g++ Exempel.c++
I fil inkluderad från /usr/include/c++/4.1.3/backward/iostream.h:31,
från Exempel.c++:1:
/usr/include/c++/4.1.3/backward/backward_warning.h:32:2: varning: #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.
Exempel.c++: In function "int main(int, char**)":
Exempel.c++:7: fel: "string" deklarerades inte i detta definitionsområde
Exempel.c++:7: fel: expected `;' before "Ord"
Exempel.c++:25: fel: "Ord" deklarerades inte i detta definitionsområde
$
Jag testade också med följande första tre rader:
Kod: Markera allt
#include <iostream>
#include <fstream>
#include <string>
Kod: Markera allt
$ g++ Exempel.c++
Exempel.c++: In function "int main(int, char**)":
Exempel.c++:7: fel: "string" deklarerades inte i detta definitionsområde
Exempel.c++:7: fel: expected `;' before "Ord"
Exempel.c++:11: fel: "cout" deklarerades inte i detta definitionsområde
Exempel.c++:11: fel: "endl" deklarerades inte i detta definitionsområde
Exempel.c++:17: fel: "ifstream" deklarerades inte i detta definitionsområde
Exempel.c++:17: fel: expected `;' before "Data"
Exempel.c++:18: fel: "Data" deklarerades inte i detta definitionsområde
Exempel.c++:20: fel: "cout" deklarerades inte i detta definitionsområde
Exempel.c++:20: fel: "endl" deklarerades inte i detta definitionsområde
Exempel.c++:25: fel: "Data" deklarerades inte i detta definitionsområde
Exempel.c++:25: fel: "Ord" deklarerades inte i detta definitionsområde
Exempel.c++:31: fel: "cout" deklarerades inte i detta definitionsområde
Exempel.c++:31: fel: "endl" deklarerades inte i detta definitionsområde
$
J.R.