Re: GCC3.3 vägrar skapa exe filer?

2003-08-30 tråd Christoffer Sawicki
On Friday 29 August 2003 20:11, Björn Johansson [EMAIL PROTECTED] wrote:
BJ Jag har nyss installerat GCC3.3(med dpkg och dselect) och
BJ det går att kompilera c++ kod men det blir inte exekverbart!?
BJ Jag har testat chmod 700 och sedan kört ./test.out men då
BJ säger systemet att filen inte är exekverbar.
BJ
BJ Det är möjligt att det här är dålig kod och det är därför
BJ det inte funkar så jag ska testa med mer kod och undersöka
BJ om det inte är ett c program som jag försöker kompilera som
BJ c++ kod(men jag tror inte det), phew...
BJ
BJ En viktig detalj är att i början av boken så står det att
BJ all kod ska funka med GCC3.2 och jag har GCC3.3 nu så det
BJ borde funka, eller hur?

% g++ -v 21 | grep version
gcc version 3.3.2 20030812 (Debian prerelease)

% cat  test.cpp
#include iostream
...
}
% g++ -o test test.cpp
% ./test
T()

*/ Christoffer Sawicki [EMAIL PROTECTED]



GCC3.3 vägrar skapa exe filer?

2003-08-29 tråd Björn Johansson

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...

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
#include ostream

class T
{
public:
  T(){ std::cout  T()\n; }
  T(int) { std::cout  T(int)\n; }
};

int a, x;

int main()
{
  T(a);

  T b();

  T c(T(x));
}



--

Björn Johansson Debian rocks!!




Re: GCC3.3 vägrar skapa exe filer?

2003-08-29 tråd Anders Lövgren
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]