-enable-auto-import auf MinGW



  • Beim Kompilieren simpelster Programme erhalte ich mit g++ auf MinGW immer diese nervige Warnung:

    Info: resolving std::cout  by linking to __imp___ZSt4cout (auto-import)
    c:/program files (x86)/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bi
    n/ld.exe: warning: auto-importing has been activated without --enable-auto-impor
    t specified on the command line.
    This should work unless it involves constant data structures referencing symbols
     from auto-imported DLLs.
    

    Kann man das irgendwie permanent beheben oder zumindest die Warnung ausschalten? Natürlich könnte man die entsprechenden Flags in Makefiles schreiben, aber dass ich für jedes kleine Test-Programm -enable-auto-import angeben muss, ist schon enorm unnötig. Ich habe dazu im Internet nicht wirklich was gefunden, ausser dass es andere Benutzer ebenfalls nervt.

    Oder besteht die einzige Möglichkeit darin, dass ich mir eine g++.exe schreibe, die alle Argumente weiterleitet und automatisch -enable-auto-import hinzufügt?



  • Schreib dir eine batch. Nichts kompilieren Nexus.



  • Ja, aber Tools wie CMake kennen dann die Batch-Datei wieder nicht. Ich bin auch nicht sicher, ob "g++.bat" die "g++.exe" ersetzen könnte (oder ob gewisse Programme explizit "g++.exe" aufrufen). Und bis ich herausgefunden habe, wie ich mit Batch etwas vom User einlese und ordentlich weiterreiche, habe ich schon längst das C++-Programm geschrieben und kompiliert 😉

    Aber ich frage mich, warum ich überhaupt zu solchen Workarounds greifen muss. Schlimm genug, dass der MinGW-Benutzer per Default für jedes standardkonforme Hello-World-Programm mit Warnungen belästigt wird, doch es gibt nicht einmal eine vernünftige Möglichkeit diese abzuschalten?



  • Ich würde sagen, da stimmt was nicht im Quellcode, weil der Linker Probleme hat, wegen resolving std::cout ... weil es mehrere std::cout gibt 😕



  • Nein, mein Quellcode ist schon richtig.

    Weiss niemand eine Lösung für dieses Problem? Dann muss ich wohl oder übel eine eigene g++.exe schreiben oder immer dieses Flag angeben... Aber das kanns doch nicht sein, oder?



  • Gibt's keine MinGW Mailing-List?
    Da würdest du sicher schnell eine Antwort bekommen Nexus. 🙂



  • Ich hab dazu recht lange bereits gesucht, man findet kaum brauchbare Antworten, obwohl sich viele Leute das genau gleiche fragen:

    About "-Wl,--enable-auto-import" in gcc 4.5.0
    g++ 4.5.0, issues importing std c++ library symbols
    MingW linker warning about auto-importing

    Hier dann erst mal eine vernünftige Aussage:

    Jemand im Juli 2010 schrieb:

    Not only can the warning be ignored, the warning will no longer occur
    with the binutils from the current trunk HEAD, because
    --enable-auto-import has now become the default for x86 and x64 mingw
    targets.

    Nur frage ich mich dann, warum meine ein paar Monate alte MinGW-Version das Problem immer noch hat. Naja, vielleicht sollte ich einfach eine Aktualisierung versuchen...


Anmelden zum Antworten