2017-12-29 36 views
11

EDIT2: Das Problem war kein einfacher Tippfehler. Ich machte einen Tippfehler in den Logs unten, den ich korrigierte, aber das Problem war immer noch da.Kann keine C++ - Programme kompilieren; Fehler: unbekannter Typ Name 'Uint8_t'

EDIT: Ich lief fälschlicherweise mit gcc statt g ++, einmal, nach dem Versuch unten. Das Problem war vorher mit g ++ und es ist jetzt da.

Ich bin derzeit auf einer MacOS High Sierra Box. Ich habe vor kurzem viele Dateien von einem MacBook Air auf diese Maschine verschoben, einschließlich der, von denen ich vermute, dass sie alle von Xcode's Junk waren. Jetzt, wenn ich versuche, ein sehr einfaches C++ Programm zu kompilieren:

#include <iostream> 

int main() 
{ 
    // VAR_DEC 
    int a = 4; 
    // VAR_MANIP 
    a = a*2; 
    // VAR_PRINT 
    std::cout << a << std::endl; 
    return 0; 
} 

bekomme ich folgende lächerliche Fehler:

[email protected]: [config_file_script] $ g++ test.cpp -o test 
In file included from test.cpp:1: 
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/iostream:38: 
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/ios:216: 
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/__locale:15: 
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/string:470: 
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/string_view:171: 
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/__string:56: 
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/algorithm:640: 
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/memory:629: 
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/typeinfo:61: 
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/exception:82: 
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/cstdlib:86: 
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/stdlib.h:94: 
In file included from /usr/include/stdlib.h:65: 
In file included from /usr/include/sys/wait.h:110: 
/usr/include/sys/resource.h:196:2: error: unknown type name 'uint8_t' 
     uint8_t ri_uuid[16]; 
     ^
/usr/include/sys/resource.h:197:2: error: unknown type name 'uint64_t' 
     uint64_t ri_user_time; 
     ^
/usr/include/sys/resource.h:198:2: error: unknown type name 'uint64_t' 
     uint64_t ri_system_time; 
     ^
/usr/include/sys/resource.h:199:2: error: unknown type name 'uint64_t' 
     uint64_t ri_pkg_idle_wkups; 
     ^
/usr/include/sys/resource.h:200:2: error: unknown type name 'uint64_t' 
     uint64_t ri_interrupt_wkups; 
     ^
/usr/include/sys/resource.h:201:2: error: unknown type name 'uint64_t' 
     uint64_t ri_pageins; 
     ^
/usr/include/sys/resource.h:202:2: error: unknown type name 'uint64_t' 
     uint64_t ri_wired_size; 
     ^
/usr/include/sys/resource.h:203:2: error: unknown type name 'uint64_t' 
     uint64_t ri_resident_size; 
     ^
/usr/include/sys/resource.h:204:2: error: unknown type name 'uint64_t' 
     uint64_t ri_phys_footprint; 
     ^
/usr/include/sys/resource.h:205:2: error: unknown type name 'uint64_t' 
     uint64_t ri_proc_start_abstime; 
     ^
/usr/include/sys/resource.h:206:2: error: unknown type name 'uint64_t' 
     uint64_t ri_proc_exit_abstime; 
     ^
/usr/include/sys/resource.h:210:2: error: unknown type name 'uint8_t' 
     uint8_t ri_uuid[16]; 
     ^
/usr/include/sys/resource.h:211:2: error: unknown type name 'uint64_t' 
     uint64_t ri_user_time; 
     ^
/usr/include/sys/resource.h:212:2: error: unknown type name 'uint64_t' 
     uint64_t ri_system_time; 
     ^
/usr/include/sys/resource.h:213:2: error: unknown type name 'uint64_t' 
     uint64_t ri_pkg_idle_wkups; 
     ^
/usr/include/sys/resource.h:214:2: error: unknown type name 'uint64_t' 
     uint64_t ri_interrupt_wkups; 
     ^
/usr/include/sys/resource.h:215:2: error: unknown type name 'uint64_t' 
     uint64_t ri_pageins; 
     ^
/usr/include/sys/resource.h:216:2: error: unknown type name 'uint64_t' 
     uint64_t ri_wired_size; 
     ^
/usr/include/sys/resource.h:217:2: error: unknown type name 'uint64_t' 
     uint64_t ri_resident_size; 
     ^
fatal error: too many errors emitted, stopping now [-ferror-limit=] 
20 errors generated. 

Ich habe versucht, die Installation und Neuinstallation alles, was ich von im Zusammenhang mit dem Problem einfiel wie gcc, g++, cc, brew, Xcode, command-line-tools usw. ich habe auch alle Vorschläge auf den folgenden Seiten versucht:

und mehr, aber diejenigen zusammenfassen es ziemlich gut. Keine der Lösungen hat funktioniert.

Ich denke, the last one hat die wahrscheinlichste Lösung. (Wenn Sie für „unbekannt“ auf der Seite zu suchen finden Sie das Update sehen.) Nach Angaben der Entwickler:

Fix: Remove /opt/local/include/** and /opt/local/lib/** from the "Header Search Paths" build settings. Replace them with much more specific paths to the desired include directories. In my particular case, this meant replacing them with /opt/local/include/glib-2.0 /opt/local/lib/glib-2.0/include /opt/local/include/. It's up and running again!

Allerdings habe ich nicht Xcode installieren, habe ich installiert nur die Befehlszeile Entwickler-Tools. Daher habe ich keine einfache Möglichkeit, auf die Erstellungseinstellungen für den "Header Search Paths" zuzugreifen. Daher kann ich seine Lösung nicht ausprobieren.

Ich bin auf der Suche nach einer Lösung für dieses Problem, vorzugsweise eine, die mich nicht die Installation des gesamten Betriebssystems erfordert. Alternativ, wenn jemand mich freundlicherweise durch die Suche nach der Build-Einstellungsdatei führen könnte, wäre ich sehr dankbar.

+0

Kommentare sind nicht für längere Diskussion; Diese Konversation wurde [zum Chat verschoben] (http://chat.stackoverflow.com/rooms/162198/discussion-on-question-by-joseph-farah-cannot-compile-any-c-programs-error-u) . –

Antwort

3

Es ist ziemlich offensichtlich, dass Sie Ihre System-GCC-Installation durchgebrannt haben. Bitte beachten Sie, dass GCC eine Suite von Compilern ist und dass G ++ das C++ Front-End ist. Paketmanager haben oft ein separates Paket namens gcc-g++. Wenn Sie jedoch aus der Quelle kompilieren, tun Sie einfach --enable-languages=c,c++. Jetzt, wenn die Neuinstallation von XCode das Problem nicht löst (Sie sollten dies bereits getan haben, wenn "es zu viel Platz einnimmt" einfach entfernen), dann können Sie versuchen, GCC aus der Quelle zu kompilieren.Übernommen aus dem GNU wiki:

  • Zuerst von Ihrem gewünschten GCC Teer Ball greifen here

  • Untar es mit tar zxvf gcc*

  • cd gcc* dann ./contrib/download_prerequisites

  • Sie eine aus den Quellen erstellen : mkdir build && cd build

  • ../gcc*/configure --prefix=$HOME/gcc-install --enable-languages=c,c++

  • make und make install

Jetzt nur noch $HOME/gcc-install/bin zu Ihrem Pfad hinzufügen, und Sie sollten gut zu gehen.

+0

Das hat mein Problem gelöst! Ich möchte auch hinzufügen, dass ich manuell das Befehlszeilen-Tools-Verzeichnis * manuell * entfernen musste, bevor ich dies versuchte; Ansonsten funktionierte das! Danke, Mann! Außerdem wünschte ich, ich könnte dies zweimal für die ursprüngliche Verwendung des Wortes "borked" auffrischen. –

+0

Was hat funktioniert? Du hättest GCC vielleicht nicht so schnell kompiliert. – OwO

+0

Dies waren im Allgemeinen die Schritte, die ich verwendet habe, um mein Problem zu lösen - GCC aus der Quelle zu kompilieren und es zu meinem Pfad hinzuzufügen. Ich hatte ein paar kleine Probleme - deshalb habe ich nichts Ähnliches als Antwort geposted - aber ich habe das Problem auf eine frühere Installation von ROOT beschränkt, und ich habe daran gearbeitet, das zu beheben die letzten paar Stunden. Entschuldigung für jede Verwirrung! –