gcc problem



  • hi
    ich habe mir gerade SuSE linux 9.3 professional auf die platte gezogen. jetzt habe ich ein riesen problem und zwar mit dem gcc 3.3.5. immer waenn ich ein programm compiliere z.B:

    #include <stdio.h>
    
    int main (void){
       printf("hallo welt\n");
    }//end main
    

    ich speichere das programm dann mit test.c ab und kompiliere dann wie gewohnt:
    mit dem befehl:

    gcc test.c -o test
    

    ABER
    dann kommen folgende fehlermaeldungen:

    badbackslash@linux:~/Documents> gcc test.c -o test
    test.c:5:12: warning: no newline at end of file
    /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../../i586-suse-linux/bin/ld: warning: libc.so.6, needed by /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libgcc_s.so, not found (try using -rpath or -rpath-link)
    /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../crt1.o(.text+0x1d): In function `_start':
    ../sysdeps/i386/elf/start.S:119: undefined reference to `__libc_start_main'
    /tmp/ccyHu147.o(.text+0x25): In function `main':
    test.c: undefined reference to `printf'
    /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libgcc_s.so: undefined reference to `free@GLIBC_2.0'
    /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libgcc_s.so: undefined reference to `memcpy@GLIBC_2.0'
    /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libgcc_s.so: undefined reference to `dl_iterate_phdr@GLIBC_2.2.4'
    /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libgcc_s.so: undefined reference to `malloc@GLIBC_2.0'
    /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libgcc_s.so: undefined reference to `strlen@GLIBC_2.0'
    /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libgcc_s.so: undefined reference to `abort@GLIBC_2.0'
    collect2: ld returned 1 exit status
    

    was hats da???
    waere super waenn ihr mir da haelfen koenntet ohne gcc ist das leben LANGWEILIG
    schon mal ein DANKE im voraus
    --linuxuser--



  • hast du libc-dev oä installiert? Such am besten mal bei YaST 2 nach libc und gcc paketen.



  • ja hab 'leider' alles installiert... ich hab alle pacete installiert (gnome entwicklung - alle packete, kde entwicklung -alle packete, erfahrener benutzer - alle packete, entwicklung - alle packete, usw...) also an dem kanns nicht liegen...



  • Ich hab dasselbe Problem allerdings bei 9.1 aber auch vollständig installiert.
    Bei mir klappts' nur mit:

    g++ test.c -o test
    

    probiers so mal !

    hoffe Dir geholfen zu haben





  • ver*'#""§ nein mit g++ bekomme ich die selben fehlermaeldungen... darf das sein?? mann ist SuSE ne doofe distro wo nicht mal der gcc funzt 😞 trotzten will ich ihn zum laufen bringen. kann es sein dass ich den gcc irgendwie noch konfigurieren muss??



  • --linuxuser-- schrieb:

    ver*'#""§ nein mit g++ bekomme ich die selben fehlermaeldungen... darf das sein??

    Klar darf das sein, hier sollte ja einfach der gcc schon ausreichen, immerhin ist das ja kein C++ sondern nur C.

    mann ist SuSE ne doofe distro wo nicht mal der gcc funzt 😞 trotzten will ich ihn zum laufen bringen. kann es sein dass ich den gcc irgendwie noch konfigurieren muss??

    libc-devel und Co. installieren, in 98% der Fälle liegt's daran. Wenn alles nichts hilft, dann mal den SuSE-Support kontaktieren. (FAQ lesen nicht vergessen!)
    Merke: Wenn unter SuSE generell die gcc nicht funktionieren würde, dann wärst garantiert nicht erst Du der Erste, der das bemerkt. Daher ist die Wahrscheinlichkeit, dass das an SuSE liegt und nicht an einem Fehler Deinerseits vergleichsweise gering, nix für ungut.



  • Vielleicht hat dein SuSE kein ldconfig ausgeführt nach der Installation, weil er die libc nicht findet. Du solltest:
    a) ldconfig ausführen (als root)
    b) mal die libc selber suchen und mit -l/pfad/libc selber linken
    c) die main zu int main ( int argc, char** argv ) ändern, um den Standard beizubehalten.

    rya.
    Scorcher24



  • Scorcher24 schrieb:

    c) die main zu int main ( int argc, char** argv ) ändern, um den Standard beizubehalten.

    int main(void)
    

    ist auch standardgemäß.



  • Achso ?? Nun da hab ich mich geirrt. Aber danke für die Korrektur !
    rya.
    Scorcher24



  • waenn ich ldconfig ausfuere passiert folgendes:

    linux:/home/babadbackslash@linux:~> su
    Password:
    linux:/home/badbackslash # ldconfig
    ldconfig: File /lib/libc.so.6 is empty, not checked.
    linux:/home/badbackslash #
    

    hilft das weiter??



  • Allerdings.
    Deine Libc ist ein 0-Byte File. 😞
    Das heisst:
    Paket per Konsole (rpm -i --force --no-deps) neu installieren.
    Auf keinen Fall per Yast. Ich hoffe das funzt. Schlimmstenfalls musst du dein OS neu installieren. Und wenn du das musst:
    www.slackware.com
    rya.
    Scorcher24


Anmelden zum Antworten