cc1 erzeugt kein Binary

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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.