On Friday 29 August 2003 20.11, Björn Johansson wrote:
Hej!
Jag har nyss installerat GCC3.3(med dpkg och dselect) och
det går att kompilera c++ kod men det blir inte exekverbart!?
Jag har testat chmod 700 och sedan kört ./test.out men då
säger systemet att filen inte är exekverbar.
Det är möjligt att det här är dålig kod och det är därför
det inte funkar så jag ska testa med mer kod och undersöka
om det inte är ett c program som jag försöker kompilera som
c++ kod(men jag tror inte det), phew...
Definitivt C++. Prova 'g++ prog.cc -o prog'.
En viktig detalj är att i början av boken så står det att
all kod ska funka med GCC3.2 och jag har GCC3.3 nu så det
borde funka, eller hur?
Här är koden(tagen från C++ in a nutshell).
#include iostream
iostream är en ostream och istream, behöver inte ostream också.
#include ostream
class T
{
public:
T(){ std::cout T()\n; }
T(int) { std::cout T(int)\n; }
};
int a, x;
Ok, alla globala variabler initieras.
int main()
{
T(a);
Ok, skapar anonymt objekt, optimeras förmodligen bort. Borde i annat fall vara
T obj(a) för att ha avsedd effekt.
T b();
Ok, deklarerar funktion ej använd returnerande T. Borde vara T b; istället
för att skapa ett objekt.
T c(T(x));
Något osäkert vad som avses. Förmodligen är det tänkt att T(x) skapar en
anonym instans av klassen, vilken används för att initiera objektet c. I så
fall borde klassen T deklarera en Copy Constructor därför C++ kompilatorer
ska/behöver_inte_ syntetiserar avsaknad CC om klassen deklarerar andra
konstruktorer (enl. Stroustrup)
}
g++ 3.2 är betydligt petigare med att följa C++ standarden än tidigare
versioner av g++ (2.95.3) . Kompilerad g++ 3.2.3) och körd med (förmodligen)
avsett resultat efter ovanstående ändringar.
--
Björn Johansson Debian rocks!!
Ledd av subject antar jag att du installerat det sista service packet för
windows :-)
--
---
Anders Lövgren -- [EMAIL PROTECTED]