cc1 erzeugt kein Binary

#3955836
Lesenswert?

Hallo zusammen,
   ich habe Cygwin und eben die Pakete mit dem Installer aktualisiert. 
Jetzt hab ich gcc-4.9.2
Ich hab gerade versucht ein Testprogramm für i686-pc-cygwin zu 
compilieren, aber bekomme keine Binärdatei. Es sieht so aus, als würde 
cc1 einfach keine Datei erzeugen, und ich hab keine Ahnung wieso.
1
$ gcc test.c -v
2
Es werden eingebaute Spezifikationen verwendet.
3
COLLECT_GCC=gcc
4
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-cygwin/4.9.2/lto-wrapper.exe
5
Ziel: i686-pc-cygwin
6
Konfiguriert mit: /cygdrive/i/szsz/tmpp/gcc/gcc-4.9.2-1.i686/src/gcc-4.9.2/configure --srcdir=/cygdrive/i/szsz/tmpp/gcc/gcc-4.9.2-1.i686/src/gcc-4.9.2 --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/libexec --datadir=/usr/share --localstatedir=/var --sysconfdir=/etc --libdir=/usr/lib --datarootdir=/usr/share --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=i686-pc-cygwin --host=i686-pc-cygwin --target=i686-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-arch=i686 --with-tune=generic --disable-sjlj-exceptions --enable-languages=ada,c,c++,fortran,java,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libgomp --disable-libitm --enable-libquadmath --enable-libquadmath-support --enable-libssp --enable-libada --enable-libjava --enable-libgcj-sublibs --disable-java-awt --disable-symvers --with-ecj-jar=/usr/share/java/ecj.jar --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id
7
Thread-Modell: posix
8
gcc-Version 4.9.2 (GCC)
9
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i686'
10
 /usr/lib/gcc/i686-pc-cygwin/4.9.2/cc1.exe -quiet -v -Dunix -idirafter /usr/lib/gcc/i686-pc-cygwin/4.9.2/../../../../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/4.9.2/../../../../i686-pc-cygwin/lib/../../include/w32api test.c -quiet -dumpbase test.c -mtune=generic -march=i686 -auxbase test -version -o /cygdrive/c/DOKUME~1/SIGINT/LOKALE~1/Temp/ccVSilvJ.s

Die Datei "ccVSilvJ.s" wird nicht erzeugt.
Hat jemand ne Idee, was hier schief läuft. Die Websuche hat mir leider 
nichts gebracht.
Vielen Dank für euere Tipps.

Gruß,
   SIGINT
Persönliche Seite #3955920
Lesenswert?

Sigint 112 schrieb:
> Es sieht so aus, als würde cc1 einfach keine Datei
> erzeugen, und ich hab keine Ahnung wieso.

> $ gcc test.c -v

1) Deine Ausgabe ist nicht komplett; nach cc1 werden noch as und ld 
aufgerufen.

2) Du hast keinen Name für die Ausgabedatei (Executable) angegeben. 
Default ist a.out oder a.exe unter Windos.

3) cc1 erzeugt keine Executables.  cc1 ist i.W. ein 
Text-Text-Transformatoer (C nach Assembler).

> Die Datei "ccVSilvJ.s" wird nicht erzeugt.

4) Wenn dir die Assembler-Ausgabe des Compilers am Herzen liegt dann 
verwende -save-temps oder lasse lediglich mit -S compilieren. 
Assembliere / Linken kannst du dann in darauf folgenden Schritt(en) 
erledigen.
#3955963
Lesenswert?

@Ahab: Ich hab cc1 nachher auch noch von Hand aufgerufen und es wird 
leider keine Datei erzeugt. Es gibt keine einzige Meldung, auch wenn ich 
"-quiet" entferne.

@Johann: 1) Doch, die Ausgabe ist vollständig. As und ld werden nicht 
aufgerufen. Ich hab keine Ahnung, wieso.

2) Das ist mir bekannt. Es wird aber nichts erzeugt.

3) Das wusste ich vorher nicht, war mir aber auf Grund der Dateiendung 
klar.
   Als nächster Schritt müsste ja as und dann ld folgen... da kommt aber 
nichts. :-(

4)Mir geht es nicht um die Assemblerdatei. Ich möchte mit "-v" nur 
verstehen, wieso kein Binary erzeugt wird. Für mich sieht es so aus, als 
würde cc1 kein Assemblerfile erzeugen und deshalb as nicht gestartet.
Leider bin ich kein gcc Fachmann, deshalb komme ich hier nicht weiter.
Deine Tipps haben auch nichts gebraucht. Weder "-save-temps" noch "-S" 
haben etwas geändert.
1
$ ldd /usr/lib/gcc/i686-pc-cygwin/4.9.2/cc1.exe
2
        ntdll.dll => /cygdrive/c/WINDOWS/system32/ntdll.dll (0x7c910000)
3
        kernel32.dll => /cygdrive/c/WINDOWS/system32/kernel32.dll (0x7c800000)
4
        cygcloog-isl-4.dll => /usr/bin/cygcloog-isl-4.dll (0x6ff20000)
5
        cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000)
6
        cygisl-10.dll => /usr/bin/cygisl-10.dll (0x6e220000)
7
        cyggmp-10.dll => /usr/bin/cyggmp-10.dll (0x6eb00000)
8
        cygiconv-2.dll => /usr/bin/cygiconv-2.dll (0x6e570000)
9
        cygintl-8.dll => /usr/local/bin/cygintl-8.dll (0x6f5c0000)

Gruß,
  SIGINT
#3956564
Lesenswert?

Ich vermisse jegliche weitere Fehlermeldung.
1
$ gcc test.c -v

Übrigens: Übersetzen geht nur ohne das "-v", mit diesem Parameter werden 
nur Informationen vom gcc angezeigt.

Übersetzen geht so:
1
$ gcc -o test1.exe test.c

"test" ist ein schlechter Name, den gibt es unter Linux als Kommando, 
deswegen besser "test1".
Persönliche Seite #3957899
Lesenswert?

Jim Meba schrieb:
> Ich vermisse jegliche weitere Fehlermeldung.
1
> $ gcc test.c -v
2
>
> Übrigens: Übersetzen geht nur ohne das "-v", mit diesem Parameter werden
> nur Informationen vom gcc angezeigt.

Nein, das stimmt nicht.

> Übersetzen geht so:
1
> $ gcc -o test1.exe test.c

Ebenso geht
1
$ gcc -v -o test1.exe test.c
allerdings mit ziemlich viel Geplapper.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren