[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: