Kan inte installera någon kompilator i Ubuntu

Här pratar vi programmering i dessa olika former. Perl, C/C++, Pascal, ADA, Lisp, COBOL, ZX Basic och mm.
Post Reply
andnord
Posts: 31
Joined: 5 October 2009, 16:31

Kan inte installera någon kompilator i Ubuntu

Post by andnord » 13 November 2009, 20:04

Hej!

Jag har försökt installera de nödvändigaste paketet för att kunna skriva och kompilera C++ koder. Genom att skriva följande i terminalen

Code: Select all

sudo aptitude install build-essential


Därefter fick jag följande meddelande.
  • Läser paketlistor... Färdig
    Bygger beroendeträd
    Läser tillståndsinformation... Färdig
    Läser utökad tillståndsinformation
    Initierar pakettillstånd... Färdig
    Inga paket kommer att installeras, uppgraderas eller tas bort.
    0 paket uppgraderade, 0 nyinstallerade. 0 att ta bort och 0 inte uppgraderade.
    Behöver hämta 0B arkiv. Efter uppackning kommer 0B diskplats att användas.
    Skriver utökad tillståndsinformation... Färdig
    Läser paketlistor... Färdig
    Bygger beroendeträd
    Läser tillståndsinformation... Färdig
    Läser utökad tillståndsinformation
    Initierar pakettillstånd... Färdig
Det verkar ju som att det redan finns någon kompilator men efter att ha försökt kompilera en enkel kod upptäckte jag att så inte är fallet. Vad är fel? Måste jag ladda ner något ytterligare från nätet?

Mvh
Andreas

mikma
Posts: 3349
Joined: 10 July 2003, 21:19

Re: Kan inte installera någon kompilator i Ubuntu

Post by mikma » 13 November 2009, 22:54

build-essential ser redan ut att vara installerad.

Skriv "g++ -v" i en terminal för att se om C++-kompilatorn är installerad

andnord
Posts: 31
Joined: 5 October 2009, 16:31

Re: Kan inte installera någon kompilator i Ubuntu

Post by andnord » 13 November 2009, 23:57

Jo den verkar vara installerad den också så det måste vara något annat fel. Får följande svar på g++ -v

Code: Select all

Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.1-4ubuntu8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu8) 
Och jag har som sagt försökt att kompilera men detta har inte lyckats.

Code: Select all

#include <stdio.h>

int main()
{
printf "Hello, world\n");
return 0;
}
Då jag först skriver "sudo gedit hello world.c" och sedan kopierar följande kod in i texteditorn och därefter sparar filen
Därefter skriver jag "cc -c hello world.c" då får jag följande felmeddelande.

Code: Select all

first.c: In function ‘main’:
hello world.c:6: error: ‘cout’ undeclared (first use in this function)
hello world..c:6: error: (Each undeclared identifier is reported only once
hello world.c:6: error: for each function it appears in.)

User avatar
kjell-e
Posts: 2817
Joined: 21 December 2002, 16:27
Location: Linköping
Contact:

Re: Kan inte installera någon kompilator i Ubuntu

Post by kjell-e » 14 November 2009, 00:18

Det där är C-kod inte C++. Har du gcc installerad?
Vad händer om du skriver gcc -v i en terminal?

Du saknar dessutom en vänsterparentes vid din printf.

Är det något speciellt skäl till att du kompilerar programmet med flaggan -c ?
Med -c får du bara en objektfil, inte ett körbart program.

andnord
Posts: 31
Joined: 5 October 2009, 16:31

Re: Kan inte installera någon kompilator i Ubuntu

Post by andnord » 18 November 2009, 09:22

Okej, ja tydligen så finns kompilatorn i systemet men den vill som inte kompilera.

Fick följande meddelande när jag gjorde en sudo gedit first.cpp och skrev in följande kod

Code: Select all

#include <iostream>

int main()
{
std::cout << "Hello world!" << std::endl;
return 0;
}
och sedan G++ first.cpp -0 test
  • test: In function `_start':
    /build/buildd/eglibc-2.10.1/csu/../sysdeps/i386/elf/start.S:65: multiple definition of `_start'
    /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o:/build/buildd/eglibc-2.10.1/csu/../sysdeps/i386/elf/start.S:65: first defined here
    test:(.rodata+0x0): multiple definition of `_fp_hw'
    /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o:(.rodata+0x0): first defined here
    test: In function `_fini':
    (.fini+0x0): multiple definition of `_fini'
    /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crti.o:(.fini+0x0): first defined here
    test:(.rodata+0x4): multiple definition of `_IO_stdin_used'
    /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o:(.rodata.cst4+0x0): first defined here
    test: In function `__data_start':
    (.data+0x0): multiple definition of `__data_start'
    /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o:(.data+0x0): first defined here
    test: In function `__data_start':
    (.data+0x4): multiple definition of `__dso_handle'
    /usr/lib/gcc/i486-linux-gnu/4.4.1/crtbegin.o:(.data+0x0): first defined here
    test: In function `main':
    (.text+0xb4): multiple definition of `main'
    /tmp/ccQfjtZw.o:first.cpp:(.text+0x0): first defined here
    test: In function `_init':
    (.init+0x0): multiple definition of `_init'
    /usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crti.o:(.init+0x0): first defined here
    /usr/lib/gcc/i486-linux-gnu/4.4.1/crtend.o:(.dtors+0x0): multiple definition of `__DTOR_END__'
    test:(.dtors+0x4): first defined here
    /usr/bin/ld: error in test(.eh_frame); no .eh_frame_hdr table will be created.
    collect2: ld returned 1 exit status

mikma
Posts: 3349
Joined: 10 July 2003, 21:19

Re: Kan inte installera någon kompilator i Ubuntu

Post by mikma » 20 November 2009, 00:14

andnord wrote:och sedan G++ first.cpp -0 test
Det finns två fel i det kommandot. Dels heter kompilatorn "g++", och flaggan är "-o". Prova

Code: Select all

g++ first.cpp -o test
När jag körde "g++ first.cpp -0 test" fick jag liknande fel som du, men utöver det fick jag "g++: unrecognized option '-0'" först. Och det första felmeddelandet är oftast det intressanta.

User avatar
kjell-e
Posts: 2817
Joined: 21 December 2002, 16:27
Location: Linköping
Contact:

Re: Kan inte installera någon kompilator i Ubuntu

Post by kjell-e » 20 November 2009, 11:44

Ta gärna en titt på den introduktion till gcc som jag har lagt in i FAQ här. Den är även applicerbar på g++.
Där hittar du en beskrivning över de vanligaste och viktigaste flaggorna, bland annat -o.

Ditt program bör du kalla något annat än test såvida inte du tycker att det är ok att skriva ./test för att köra det. Det finns nämligen ett annat program som heter test, som ligger i katalogen /usr/bin i Linuxsystem, och om du endast skriver test kommer detta program i /usr/bin att köras då din PATH antagligen pekar ut katalogen /usr/bin före katalogen du står i.

Det är ett vanligt fel att folk kallar sina program för test och sedan försöker köra programmet genom att skriva test och då blir förvånad när det inte fungerar så som de har förväntat sig att deras program ska göra när det inte är deras program som körs utan ett annat program vid namn test.

perrascout
Posts: 132
Joined: 2 December 2002, 17:25
Contact:

Re: Kan inte installera någon kompilator i Ubuntu

Post by perrascout » 25 November 2009, 12:31

Lite fråga bara varför kör du "sudo" för att starta gedit? Du kan skriva koden och kompilera den som vanlig användare.

Sedan vill jag bara påpeka att det är inte smart att döpa filer som hello world.c om man ska använda konsollbaserade program. Många program kommer att försöka tolka det som två argumet "hello" och "world.c"

//Fredrik
//Fredrik

User avatar
andersajja
Posts: 1123
Joined: 17 August 2005, 14:22
Location: Motala
Contact:

Re: Kan inte installera någon kompilator i Ubuntu

Post by andersajja » 25 November 2009, 13:12

perrascout wrote:...
Sedan vill jag bara påpeka att det är inte smart att döpa filer som hello world.c om man ska använda konsollbaserade program. Många program kommer att försöka tolka det som två argumet "hello" och "world.c"

//Fredrik
Nej att använda mellanslag i filnamn är aldrig ett smart drag (oavsett OS). Vissa GUI'n accepterar detta men inte terminal eller konsoll. Om man vill använda en avgränsning mellan ord så använd ett nedsänkt streck '_' istället.
andersajja

"You are not allowed to criticize this product publicly",
"You agree that by agreeing, we can make any changes to
the agreement in the future which you automatically agree to."

Post Reply