mingw / include / c ++ / cstdlib: stdlib.h: Keine solche Datei oder kein Verzeichnis

7

Ich versuche OpenImageIO für 64-bit Windows auf Fedora 26 mit MinGW zu kompilieren. Nachdem ich yum verwendet habe, um die Mingw-Versionen der Abhängigkeiten abzurufen, habe ich mingw64-cmake gefolgt von make ausgeführt. Allerdings bekomme ich sofort einen Kompilierfehler über stdlib.h nicht gefunden.

%Vor%

Ich habe bestätigt, dass stdlib.h zumindest in /usr/include/ und in /usr/x86_64-w64-mingw32/sys-root/mingw/include/c++/ gefunden wird, wo sich auch die Datei befindet, die den Compilerfehler angibt.

Warum erhalte ich immer noch den Fehler stdlib.h: No such file or directory ?

Aktualisierung: Ich habe weitere Recherchen durchgeführt und Folgendes gelernt: The preprocessor directive #include_next behaves like the #include directive, except that it specifically excludes the directory of the including file from the paths to be searched for the named file.

Dies würde erklären, warum cstdlib stdlib.h nicht im selben Ordner findet. Aber cstdlib ist Teil von MinGW und nicht irgendein Teil des Codes, den ich zu kompilieren versuche. Ich habe also immer noch keine Ahnung, was hier falsch ist oder wie man diesen Fehler beheben kann.

Bearbeiten : Hier finden Sie die Informationen zur Compiler-Version für den Fall, dass sie nützlich ist: Ссылка . Dies ist eine Neuinstallation, also sollte dort nichts Ungewöhnliches sein.

    
Steve 21.07.2017, 20:06
quelle

2 Antworten

1

Ich habe es gelöst, ich kann es erneut kompilieren.

Die Lösung (für mich) ist die Variable CPLUS_INCLUDE_PATH zum Pfad hinzuzufügen und sie auf das MinGW C ++ - Include-Verzeichnis zu setzen, für mich: C:\MinGW\lib\gcc\mingw32.3.0\include\c++ .

Ich hoffe, es funktioniert auch für Sie.

    
izanbf1803 17.08.2017 15:37
quelle
0

Die Verwendung von #include_next scheint auf der Grundlage meines Googelns viele Probleme zu verursachen. Versuchen Sie, stdlib.h direkt einzubeziehen, indem Sie die folgende Syntax verwenden:

%Vor%

Diese Syntax wurde in gcc 6.0 hinzugefügt, um Probleme mit Bibliotheken von Drittanbietern zu beheben. Siehe hier für die Vorgehensweise und das Schließen.

Bearbeiten: Geänderte Antwort, um neue Informationen über gcc wrapper_headers und #include_next

anzuzeigen     
TriskalJM 24.07.2017 18:32
quelle

Tags und Links