Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
25.07.2021, 02:09:59

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 25777
  • Letzte: wombat1
Statistiken
  • Beiträge insgesamt: 746694
  • Themen insgesamt: 60054
  • Heute online: 248
  • Am meisten online: 2287
  • (22.01.2020, 19:20:24)
Benutzer Online
Mitglieder: 2
Gäste: 176
Gesamt: 178

Autor Thema: [gelöst]  gcc findet stdio.h nicht  (Gelesen 1038 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

[gelöst] gcc findet stdio.h nicht
« am: 07.05.2021, 09:08:20 »
Hallo,
Ich nutze seit kurzem Linux Mint 20.1 Cinnamon und möchte jetzt anfangen, mit C zu programmieren. Der gcc zeigt mir allerdings folgendes:
hallo.c:1:10: fatal error: stdio.h: Datei oder Verzeichnis nicht gefunden
    1 | #include <stdio.h>
      |          ^~~~~~~~~
compilation terminated.

Daraufhin hab ich versucht build-essential zu installieren:
$ sudo apt-get install build-essential
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 build-essential : Hängt ab von: libc6-dev soll aber nicht installiert werden oder
                                  libc-dev
                   Hängt ab von: g++ (>= 4:9.2) soll aber nicht installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.

Ich bin neu bei Linux und habe das so interpretiert, dass das Paket libc6-dev fehlt. Deshalb also:
$ sudo apt-get install libc6-dev
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 libc6-dev : Hängt ab von: libc6 (= 2.31-0ubuntu9.2) aber 2.31-0ubuntu9.3 soll installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.

libc6 ist aber schon in Version 2.31-0ubuntu9.3 vorhanden. Ich weiß nicht genau was mit "zurückgehaltenen defekten Paketen" gemeint ist, aber das OS ist relativ frisch installiert und auf dem neuesten Stand, also dürfte ich eigentlich nichts kaputt gespielt haben. Ich hab auch manuell nach der stdio.h-Datei gesucht, aber nichts gefunden (könnte auch daran liegen, dass ich nicht wusste, wo ich suchen sollte).
Kann mir da vielleicht jemand helfen?
« Letzte Änderung: 11.05.2021, 21:47:04 von MorJu »

Re: gcc findet stdio.h nicht
« Antwort #1 am: 07.05.2021, 11:17:47 »
Vielleicht hilft dir dieser Artikel weiter: https://wiki.ubuntuusers.de/Paketverwaltung/Problembehebung/

FranzStahl

  • Gast
Re: gcc findet stdio.h nicht
« Antwort #2 am: 07.05.2021, 12:56:30 »
Da scheinen irgendwelche Abhängigkeiten von libc6-dev nicht richtig gesetzt zu sein.
Ich erhalte denselben Fehler auf 2 unterschiedlichen Maschinen.
Beim expliziten Installationsversuch der libc6 2.31-0ubuntu9.2
mit apt-get install libc6=2.31-0ubuntu9.2würde das halbe System entfernt werden:
Paketlisten werden gelesen...
Abhängigkeitsbaum wird aufgebaut....
Statusinformationen werden eingelesen....
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
  libavahi-common-data:i386 libx11-xcb1:i386
Verwenden Sie »apt autoremove«, um sie zu entfernen.
Die folgenden zusätzlichen Pakete werden installiert:
  libcapi20-3 libfaudio0 libodbc1 libosmesa6 libstb0 libvkd3d1 libwine wine64
Vorgeschlagene Pakete:
  glibc-doc libmyodbc odbc-postgresql tdsodbc unixodbc-bin
  ttf-mscorefonts-installer wine64-preloader
Empfohlene Pakete:
  wine32
Die folgenden Pakete werden ENTFERNT:
  glib-networking:i386 gstreamer1.0-plugins-base:i386
  gstreamer1.0-plugins-good:i386 gstreamer1.0-x:i386 i965-va-driver:i386
  intel-media-va-driver:i386 libaa1:i386 libaom0:i386 libapparmor1:i386
  libaribb24-0:i386 libasn1-8-heimdal:i386 libasound2:i386
  libasound2-plugins:i386 libasyncns0:i386 libatomic1:i386
  libavahi-client3:i386 libavahi-common3:i386 libavc1394-0:i386
  libavcodec-extra58:i386 libavutil56:i386 libblkid1:i386 libbrotli1:i386
  libbsd0:i386 libbz2-1.0:i386 libc6:i386 libc6-dbg libcaca0:i386
  libcairo-gobject2:i386 libcairo2:i386 libcap2:i386 libcapi20-3:i386
  libcdparanoia0:i386 libcodec2-0.9:i386 libcom-err2:i386 libcrypt1:i386
  libcups2:i386 libcurl3-gnutls:i386 libdatrie1:i386 libdb5.3:i386
  libdbus-1-3:i386 libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libdv4:i386 libedit2:i386 libelf1:i386
  libexif12:i386 libexpat1:i386 libfaudio0:i386 libffi7:i386 libflac8:i386
  libfontconfig1:i386 libfreetype6:i386 libfribidi0:i386 libgcc-s1:i386
  libgcrypt20:i386 libgd3:i386 libgdbm-compat4:i386 libgdbm6:i386
  libgdk-pixbuf2.0-0:i386 libgl1:i386 libgl1-mesa-dri:i386 libglapi-mesa:i386
  libglib2.0-0:i386 libglu1-mesa:i386 libglvnd0:i386 libglx-mesa0:i386
  libglx0:i386 libgmp10:i386 libgnutls30:i386 libgomp1:i386 libgpg-error0:i386
  libgphoto2-6:i386 libgphoto2-port12:i386 libgpm2:i386 libgraphite2-3:i386
  libgsm1:i386 libgssapi-krb5-2:i386 libgssapi3-heimdal:i386
  libgstreamer-plugins-base1.0-0:i386 libgstreamer-plugins-good1.0-0:i386
  libgstreamer1.0-0:i386 libgudev-1.0-0:i386 libharfbuzz0b:i386
  libhcrypto4-heimdal:i386 libheimbase1-heimdal:i386 libheimntlm0-heimdal:i386
  libhogweed5:i386 libhx509-5-heimdal:i386 libicu66:i386 libidn2-0:i386
  libiec61883-0:i386 libieee1284-3:i386 libigdgmm11:i386 libjack-jackd2-0:i386
  libjbig0:i386 libjpeg-turbo8:i386 libjpeg8:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-26-heimdal:i386 libkrb5-3:i386
  libkrb5support0:i386 liblcms2-2:i386 libldap-2.4-2:i386 libllvm11:i386
  libltdl7:i386 liblz4-1:i386 liblzma5:i386 libmount1:i386 libmp3lame0:i386
  libmpg123-0:i386 libmysqlclient21:i386 libncurses6:i386 libncursesw6:i386
  libnettle7:i386 libnghttp2-14:i386 libnuma1:i386 libodbc1:i386 libogg0:i386
  libopenal1:i386 libopencore-amrnb0:i386 libopencore-amrwb0:i386
  libopenjp2-7:i386 libopus0:i386 liborc-0.4-0:i386 libosmesa6:i386
  libp11-kit0:i386 libpango-1.0-0:i386 libpangocairo-1.0-0:i386
  libpangoft2-1.0-0:i386 libpcap0.8:i386 libpci3:i386 libpciaccess0:i386
  libpcre2-8-0:i386 libpcre3:i386 libperl5.30:i386 libpixman-1-0:i386
  libpng16-16:i386 libproxy1v5:i386 libpsl5:i386 libpulse0:i386
  libraw1394-11:i386 libroken18-heimdal:i386 librsvg2-2:i386
  librsvg2-common:i386 librtmp1:i386 libsamplerate0:i386 libsane:i386
  libsasl2-2:i386 libsasl2-modules:i386 libsasl2-modules-db:i386
  libsdl2-2.0-0:i386 libselinux1:i386 libsensors5:i386 libshine3:i386
  libshout3:i386 libslang2:i386 libsnappy1v5:i386 libsndfile1:i386
  libsndio7.0:i386 libsnmp35:i386 libsoup2.4-1:i386 libsoxr0:i386
  libspeex1:i386 libsqlite3-0:i386 libssh-4:i386 libssl1.1:i386 libstb0:i386
  libstdc++6:i386 libswresample3:i386 libsystemd0:i386 libtag1v5:i386
  libtag1v5-vanilla:i386 libtasn1-6:i386 libthai0:i386 libtheora0:i386
  libtiff5:i386 libtinfo6:i386 libtwolame0:i386 libudev1:i386
  libunistring2:i386 libusb-1.0-0:i386 libuuid1:i386 libv4l-0:i386
  libv4lconvert0:i386 libva-drm2:i386 libva-x11-2:i386 libva2:i386
  libvdpau1:i386 libvisual-0.4-0:i386 libvkd3d1:i386 libvo-amrwbenc0:i386
  libvorbis0a:i386 libvorbisenc2:i386 libvpx6:i386 libvulkan1:i386
  libwavpack1:i386 libwayland-client0:i386 libwayland-cursor0:i386
  libwayland-egl1:i386 libwebp6:i386 libwebpmux3:i386 libwind0-heimdal:i386
  libwine:i386 libwrap0:i386 libx11-6:i386 libx264-155:i386 libx265-179:i386
  libxau6:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386
  libxcb-present0:i386 libxcb-randr0:i386 libxcb-render0:i386 libxcb-shm0:i386
  libxcb-sync1:i386 libxcb-xfixes0:i386 libxcb1:i386 libxcomposite1:i386
  libxcursor1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxinerama1:i386 libxkbcommon0:i386
  libxml2:i386 libxpm4:i386 libxrandr2:i386 libxrender1:i386
  libxshmfence1:i386 libxslt1.1:i386 libxss1:i386 libxv1:i386
  libxvidcore4:i386 libxxf86vm1:i386 libzstd1:i386 libzvbi0:i386
  mesa-va-drivers:i386 mesa-vdpau-drivers:i386 mesa-vulkan-drivers:i386
  ocl-icd-libopencl1:i386 va-driver-all:i386 vdpau-driver-all:i386 wine32:i386
  zlib1g:i386
Die folgenden NEUEN Pakete werden installiert:
  libcapi20-3 libfaudio0 libodbc1 libosmesa6 libstb0 libvkd3d1 libwine wine64
Die folgenden Pakete werden durch eine ÄLTERE VERSION ERSETZT (Downgrade):
  libc6
0 aktualisiert, 8 neu installiert, 1 durch eine ältere Version ersetzt, 251 zu entfernen und 0 nicht aktualisiert.
Es müssen 31,3 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 836 MB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n]
« Letzte Änderung: 07.05.2021, 13:51:42 von FranzStahl »

Re: gcc findet stdio.h nicht
« Antwort #3 am: 07.05.2021, 12:56:36 »
Ich habe jetzt
sudo apt-get -f install und
sudo aptitude -o Acquire::http::No-Cache=True -o Acquire::BrokenProxy=true update von der Seite probiert.

Hat aber nichts geholfen, außer, dass sich die Fehlermeldung verändert hat:
$ sudo apt-get install build-essential
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Paket build-essential ist nicht verfügbar, wird aber von einem anderen Paket
referenziert. Das kann heißen, dass das Paket fehlt, dass es abgelöst
wurde oder nur aus einer anderen Quelle verfügbar ist.

E: Für Paket »build-essential« existiert kein Installationskandidat

Falls es hilft hier noch meine sources.list:
$ grep -P '^[ \t]*[^#[ \t]+' /etc/apt/sources.list /etc/apt/sources.list.d/*.list
/etc/apt/sources.list.d/official-package-repositories.list:deb http://packages.linuxmint.com ulyssa main upstream import backport #id:linuxmint_main
/etc/apt/sources.list.d/official-package-repositories.list:deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
/etc/apt/sources.list.d/official-package-repositories.list:deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
/etc/apt/sources.list.d/official-package-repositories.list:deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
/etc/apt/sources.list.d/official-package-repositories.list:deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
/etc/apt/sources.list.d/official-package-repositories.list:deb http://archive.canonical.com/ubuntu/ focal partner

Ich hab auf der Seite sonst nichts gefunden, was zu meinem Problem passen könnte.

Re: gcc findet stdio.h nicht
« Antwort #4 am: 07.05.2021, 14:05:21 »
sources.list sieht gut aus.

Hier keine Probleme auf LM 20.1.
apt clean
apt update
apt upgrade
apt install -f

apt install build-essential
dpkg -l "build-essential"
dpkg -l "libc6*"
dpkg -l "g++*"

apt-cache policy build-essential
apt-cache policy libc6-dev
apt-cache policy g++

Re: gcc findet stdio.h nicht
« Antwort #5 am: 08.05.2021, 12:31:50 »
Zitat
Code: [Auswählen]

apt clean
apt update
apt upgrade
apt install -f

Ich hab das jetzt ausprobiert, Installation klappt aber trotzdem nicht. Jetzt kommt wieder die alte Fehlermeldung mit den "zurückgehaltenen, defekten Paketen".
Gibt es eine Möglichkeit, die C-Standard-Header ohne build-essential zu bekommen?

Re: gcc findet stdio.h nicht
« Antwort #6 am: 08.05.2021, 12:59:33 »
Falls es hilft hier noch meine sources.list:
$ grep -P '^[ \t]*[^#[ \t]+' /etc/apt/sources.list /etc/apt/sources.list.d/*.list
Off-Topic:
Ich kann hier leider auch nichts weiter zur Lösung deines Problems beitragen, aber könntest Du mir bitte die regex in dem grep Befehl erläutern?

Re: gcc findet stdio.h nicht
« Antwort #7 am: 08.05.2021, 13:36:38 »
Zitat
Off-Topic:
Ich kann hier leider auch nichts weiter zur Lösung deines Problems beitragen, aber könntest Du mir bitte die regex in dem grep Befehl erläutern?

Ich hab die nicht selbst geschrieben, sondern nur auf ner anderen LMU-Seite gefunden.
Aber die schließt einfach nur die Kommentare aus: [^#]+ bedeutet, dass dort Zeichen stehen müssen, die keine Raute sind. In dem sources.list stehen nämlich am Anfang noch Kommentare drin, die durch # eingeleitet werden. Außerdem stehen in der regex noch Tabulatoren, aber die sind denk ich mal nicht so wichtig.
(Die Erklärung ist ziemlich stümperhaft ::) vielleicht findet sich noch wer, der das besser kann)

Re: gcc findet stdio.h nicht
« Antwort #8 am: 08.05.2021, 13:47:30 »
hilft jedenfalls schonmal weiter :-) Danke

Re: gcc findet stdio.h nicht
« Antwort #9 am: 08.05.2021, 15:05:35 »
Die Paketquellen anzeigen geht aber auch kurz und schmerzlos mit inxi -r

Re: gcc findet stdio.h nicht
« Antwort #10 am: 09.05.2021, 07:43:00 »
Ich hab das jetzt ausprobiert, Installation klappt aber trotzdem nicht. Jetzt kommt wieder die alte Fehlermeldung mit den "zurückgehaltenen, defekten Paketen".
Was ist mit den übrigen Befehlen? Bitte die Ausgaben zeigen.

Re: gcc findet stdio.h nicht
« Antwort #11 am: 09.05.2021, 14:57:58 »
$ apt install build-essential
[sudo] Passwort für moritz:           
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 build-essential : Hängt ab von: libc6-dev soll aber nicht installiert werden oder
                                  libc-dev
                   Hängt ab von: g++ (>= 4:9.2) soll aber nicht installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.

$ dpkg -l "build-essential"
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
         Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name            Version      Architektur  Beschreibung
+++-===============-============-============-=================================
un  build-essential <keine>      <keine>      (keine Beschreibung vorhanden)

$ dpkg -l "libc6*"
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
         Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name            Version         Architektur  Beschreibung
+++-===============-===============-============-=========================================
ii  libc6:amd64     2.31-0ubuntu9.3 amd64        GNU C Library: Shared libraries
un  libc6-amd64     <keine>         <keine>      (keine Beschreibung vorhanden)
ii  libc6-dbg:amd64 2.31-0ubuntu9.3 amd64        GNU C Library: detached debugging symbols
un  libc6-dev       <keine>         <keine>      (keine Beschreibung vorhanden)

$ dpkg -l "g++"
dpkg-query: Kein Paket gefunden, das auf g++ passt

$ apt-cache policy build-essential
build-essential:
  Installiert:           (keine)
  Installationskandidat: 12.8ubuntu1.1
  Versionstabelle:
     12.8ubuntu1.1 500
        500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
     12.8ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages

$ apt-cache policy libc6-dev
libc6-dev:
  Installiert:           (keine)
  Installationskandidat: 2.31-0ubuntu9.2
  Versionstabelle:
     2.31-0ubuntu9.2 500
        500 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
     2.31-0ubuntu9 500
        500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages

$ apt-cache policy g++
g++:
  Installiert:           (keine)
  Installationskandidat: 4:9.3.0-1ubuntu2
  Versionstabelle:
     4:9.3.0-1ubuntu2 500
        500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages

Re: gcc findet stdio.h nicht
« Antwort #12 am: 10.05.2021, 18:18:34 »
OK, danke.
M.E. gibt es aktuell einen Fehler in den offiziellen Paketquellen. Ich bin ratlos.

Du hast libc6 in der Version 2.31-0ubuntu9.3.
Zugehörig wäre jetzt libc6-dev auch in der Version 2.31-0ubuntu9.3. Die Version 2.31-0ubuntu9.3 ist aber nicht mehr verfügbar. Stattdessen ist jetzt wieder nur die bisherige Version 2.31-0ubuntu9.2 (focal-updates) verfügbar.

Bei mir war build-essential bereits installiert und ich habe hier bereits libc6-dev auch in der Version 2.31-0ubuntu9.3. libc-dev-bin, libc-bin, libc6-dbg, libc6-dev, libc6 - alle in Version 2.31-0ubuntu9.3 - werden mir jetzt in Synaptic als lokal oder veraltet angezeigt.

Re: gcc findet stdio.h nicht
« Antwort #13 am: 11.05.2021, 06:03:48 »
Moin,
ich hatte auch mal so ein ähnliches Problem, kann mich aber nicht mehr genau daran erinnern damals hat mir aber dies geholfen:
sudo apt update && sudo apt full-upgradeGruß
Wolfgang

Re: gcc findet stdio.h nicht
« Antwort #14 am: 11.05.2021, 08:25:56 »
Wenn das auch nicht funktioniert, könnte man vorher noch APT gründlich aufräumen: sudo rm -rf /var/cache/apt/archives/* # Cache ausräumen sudo rm -rf /var/lib/apt/lists/* # löschen der bisher gespeicherten Quelllisten.
Die werden dann neu angelegt.