Re: GCC3.3 vägrar skapa exe filer?
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 -- lespaul@algonet.se
Reply to: