GNU/Linux >> LINUX-Kenntnisse >  >> Linux

GCC-Build-Problem (#include_next limits.h)

Ich hatte mein Problem mit dem Kompilieren mit STLport 5.1.5, aber es sieht so aus, als wäre das Problem behoben, nämlich STLport 5.2.0. Das Problem ist in den STLport-Versionshinweisen dokumentiert. Nachdem ich eine Kopie von STLport 5.2.1 erhalten hatte, verlief die Kompilierung erfolgreich ohne Schluckauf.


Ich bin auf dieses Problem gestoßen, als ich eine Cross-Kompilierung durchführte. Wenn Sie ein 'makedepend' ausführen, ruft das Makefile das makedepend-Programm auf, wie aus dieser Zuweisung ersichtlich:

MAKEDEPPROG=makedepend

makedepend durchsucht nur einige standardmäßige Include-Verzeichnisse, die mit /usr/include beginnen

Seit dem #include_next Direktive bedeutet, die nächste gefundene Instanz der benannten Include-Datei in den Suchpfad aufzunehmen, dies schlägt fehl, wenn keine andere gefunden wird.

Für mich bestand die Lösung darin, makedepend anzuweisen, zuerst meine Cross-Compiler-Include-Verzeichnisse zu durchsuchen. Ich tat dies, indem ich den MAKEDEPPROG änderte Zuweisung, um die -I einzuschließen Direktive:

MAKEDEPPROG=makedepend -I < path/to/cross-compiler/include-fixed >

Ich schlage vor, etwas über das Programm makedepend zu lesen (von dem ich vorher nichts wusste). Zum Beispiel war es mir nicht klar, dass makedepend keinen Umgebungssuchpfad verwenden würde. Die -I Die Direktive setzt den angegebenen Suchpfad vor die Standardpfade von makedepend.


Linux
  1. Wie man RPM-Pakete baut

  2. Cross-Compiler für Linux auf Mac OS X?

  3. Wie kann man Maven Build-Plattform unabhängig machen?

  4. bash sh - Befehl nicht gefunden

  5. Warum heißt es:Wir dürfen limit.h nicht einschließen! in dirent.h?

Wie man ein Flatpak baut

Linux-Workstation Build im Jahr 2019

So fügen Sie eine statische Bibliothek in ein Makefile ein

Netbeans 7.2 zeigt Kennung kann nicht aufgelöst werden, obwohl Build erfolgreich ist

Linux-limits.conf funktioniert nicht?

wie man gcc 4.9.2 auf RHEL 7.4 installiert