Avatar billede tangveje Nybegynder
02. marts 2003 - 21:18 Der er 17 kommentarer og
2 løsninger

C++ under Linux

Hej... Jeg ville gerne igang med C++ under Linux, og havde forestillet mig at GCC måtte være en glimrende compiler at starte med. Men efter mange mislykkede forsøg må jeg indse at alt hvad GCC har givet mig er mindre hår.

Jeg håber nogen her kan hjælpe mig videre herfra, og beklager den sparsomme info, men jeg er ikke klar over hvad jeg helt præcist søger eller skal have hjælp til, det eneste jeg ved er at jeg meget gerne vil igang med C++ under Linux, helt præcist hvordan er så op til jer at forklare mig... Håber det er overkommeligt :)
Avatar billede arne_v Ekspert
02. marts 2003 - 21:24 #1
GCC er vist stort set den eneste C++ compiler for Linux, så den hænger du på !

Men de fleste kan da også få den til at virke OK.

Hvad driller dig ?  Manglende IDE ? Mystiske command line switches ?
Avatar billede arne_v Ekspert
02. marts 2003 - 21:25 #2
For en IDE kan du jo downloade f.eks. SourceNavigator fra
http://sources.redhat.com/.
Avatar billede soreno Praktikant
02. marts 2003 - 21:26 #3
Et lille c++ test program:

------------main.cpp
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
  cout << "Hello world" << endl;
}

Kompileres sådan:
g++ -o Main main.cpp
./main

Er det det du ønsker ?
Avatar billede soreno Praktikant
02. marts 2003 - 21:28 #4
Hvis det er et IDE du mangel så tag også denne op til overvejelse:
http://www.kdevelop.org/
Avatar billede soreno Praktikant
02. marts 2003 - 21:31 #5
Avatar billede tangveje Nybegynder
02. marts 2003 - 21:32 #6
Det er ikke et IDE jeg mangler, har kdevelop installeret og har også kigget kort på det, men fortrækker at undgå det så vidt muligt :)

Soreno > Din kode fik jeg til at virke, og det hjalp mig vist lidt på vej, men jeg er stadig forvirret. Måske er er det fordi jeg har været vant til at arbejde med C++ under Windows (ikke meget, men lidt), men havde nu ikke forestillet mig den store forskel mellem windows og linux på det punkt.

Hvorfor er det at denne kode ikke virker :

#include <iostream>

int main()
{
  cout << "Hello world" << endl;
}

Og tak for links, dem vil jeg straks kigge på :)
Avatar billede arne_v Ekspert
02. marts 2003 - 21:32 #7
Den kan meget vel være bedre end SourceNavigator.

SN er nemlig som navnet antyder bedst til at browse og søge
i source end til at skrive kode i.

[til gengæld er SN så også ret suveræn når man skal hav edannet sig et
overblik over store mængder eksisterende kode]
Avatar billede arne_v Ekspert
02. marts 2003 - 21:34 #8
tangeveje>

Gamle C++ compilere forventer:

#include <iostream.h>

int main()
{
  cout << "Hello world" << endl;
}

nye C++ compilere forventer:

#include <iostream>

using namespace std;

int main()
{
  cout << "Hello world" << endl;
}

Og du har "mixet".
Avatar billede soreno Praktikant
02. marts 2003 - 21:35 #9
Din kode virker ikke fordi du ikke referere til namespace.

Dit vil virke hvis du skriver:
std::cout << "hello" << std::endl;

Eller includer <iostream.h> istedet.

Jeg foretrækker, sjovt nok, den notation jeg bruger i det første eksempel. :-)
Avatar billede tangveje Nybegynder
02. marts 2003 - 21:39 #10
OK, det hælper på det :)

Det med at erstatte iostream.h med blot iostream fik jeg også tydet mig frem til via fejlmeldingerne. Manglede så åbenbart bare detaljen med namespaces :)

Vil lige vende tilbage om 5 minutter når jeg er sikker på jeg har helt fat i det :)
Avatar billede tangveje Nybegynder
02. marts 2003 - 21:43 #11
Fantastisk, at sådan en lille detalje kan give så mange grå hår :) Tak skal i have, det var jo herligt

I skulle vel ikke kunne fortælle mig hvorfor det med namespaces ikke bliver nævnt i diverse tutorials, jeg har i hvert fald ikke set det nævnt nogen steder før.
Avatar billede arne_v Ekspert
02. marts 2003 - 21:45 #12
Det er en del af ANSI C++ standarden og bør være neævnt i en nyere (!)
tutorial.

[byere fordi ANSI C++ er relativt ny]
Avatar billede arne_v Ekspert
02. marts 2003 - 21:46 #13
Avatar billede soreno Praktikant
02. marts 2003 - 21:47 #14
Ehhh, måske du skulle skrive til forfatteren bag tutorialen :-)

Jeg vil anbefale en bog istedet for tutorials.
f.eks.
"C++ from the ground up" af Schildt.
"Standard C++ bible" af Stevens.
Avatar billede tangveje Nybegynder
02. marts 2003 - 21:50 #15
Tja, har meget at lære, og ville også foretrække en bog, det er altså nemmere/bedre... Men tak for jeres hjælp i hvert fald :)
Avatar billede segmose Nybegynder
03. marts 2003 - 09:24 #16
ang. Schildt:
http://www.accu.org/bookreviews/public/reviews/s/s002016.htm

Han bliv hængt en hel del ud for at skrive forkerte ting i sine bøger
i comp.std.c, det kunne være han har forbedret sig men det ser ikke
sådan ud.
Avatar billede arne_v Ekspert
03. marts 2003 - 10:22 #17
Der er vist lavet adskillige web-sider som remser alle Schildts
fejl op.

Men:
  1)  Det meste af det er små ting (void main versus int main og den
      slags).
  2)  Da jeg læste comp.lang.c  midt i 90'erne var det en flok
      arrogante feinschmeckere der dominerede gruppen.
  3)  Jeg har selv lært C (for mange år siden) efter en bog af
      Schildt

Så jeg vil tillade mig at postulere at hans bøger er udmærkede til
at lære at programmere efter. De er absolut ikke gode til at
lære præcis hvad diverse C og C++ standarder siger om sprogenes
finere detaljer.
Avatar billede soreno Praktikant
03. marts 2003 - 10:30 #18
Så vidt jeg kan se er bogen ikke blevet reviewet af siden.
http://www.accu.org/bookreviews/public/reviews/cp/cp001508.htm

Men de kan tilsyneladende ikke lide forsiden på bogen..
Mon det er Schildt der designer forsiden.. ?

Den er tilsyneladende ikke anbefalet fordi den ikke er læst/reviewet.
Avatar billede arne_v Ekspert
03. marts 2003 - 10:38 #19
Uddrag fra http://www.faqs.org/faqs/C-faq/learn/

    Many C and C++ experts recommend against using ANY book written by
    a certain Herbert Schildt. To see why, read the answer to question
    16.

16: Why do many experts not think very highly of Herbert Schildt's
books?

    A good answer to this question could fill a book by itself. While
    no book is perfect, Schildt's books, in the opinion of many
    gurus, seem to positively aim to mislead learners and encourage
    bad habits. Schildt's beautifully clear writing style only makes
    things worse by causing many "satisfied" learners to recommend his
    books to other learners.

    Do take a look at the following scathing articles before deciding
    to buy a Schildt text.
      http://www.lysator.liu.se/c/schildt.html
      http://herd.plethora.net/~seebs/c/c_tcr.html

    The above reviews are admittedly based on two of Schildt's older
    books. However, the language they describe has not changed in the
    intervening period, and several books written at around the same
    time remain highly regarded.
   
    The following humorous post also illustrates the general feeling
    towards Schildt and his books.
      http://www.qnx.com/~glen/deadbeef/2764.html

    There is exactly one and ONLY one C book bearing Schildt's name on
    its cover that is at all recommended by many C experts - see Q 25.

25: Where can I obtain a copy of the standards for C and C++?

    You cannot obtain copies of the standards for free. This is because
    the standards organisations earn a large part of their revenue from
    selling printed copies.

    The C FAQ tells you how you can obtain copies of the C standard.
    You could also buy "The Annotated ANSI C Standard", by the
    afore-mentioned Herbert Schildt (question 16). Make sure that you
    ignore the annotations completely, however.

    The C++ standard can be obtained online directly from the ANSI
    Electronic Standards store . After registering yourself for free,
    you can download the document in Adobe PDF format on payment of
    $18.00 (US) by credit card.
      http://webstore.ansi.org/ansidocstore/default.asp

    The standards documents can be daunting at first sight; meant, as
    they are, to be as formal and precise as possible. They are NOT
    suitable for learning from, but are intended rather to be used as
    the ultimate authority to check with on any language issue.

    Also, check the comp.std.c++ FAQ.
      http://reality.sgi.com/austern_mti/std-c++/faq.html
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester