VS2013: "Forced Include Files: pch.h" und statische Libs



  • Hi,

    ich nutze "Forced Include Files: pch.h" (/FI) für den precompiled header, damit ich nicht überall im Source pch.h inkludieren muss (dies soll die Portabilität verbessern (GCC)).
    Oder kann man das besser machen?

    Jedenfalls gibt es ein Problem:

    Ich nutze diese Option sowohl in statischen Libs als auch in der Anwendung.
    Nun will ich einen Header der Lib in die Anwendung inkludieren.
    Ich muss aber auch die pch.h der Lib mit inkludieren, da sie ja im Lib-Source nirgends inkludiert wird:

    // In pch.h der Anwendung:
    #include "Util\pch.h"
    #include "Util\Util.h"

    Das ist schon mal blöd, funktioniert aber.

    Kommt nun jedoch eine zweite Lib hinzu, gibt es Fehler:

    #include "Util\pch.h"
    #include "Util\Util.h"

    #include "Util2\pch.h"
    #include "Util2\Util2.h"

    "undeclared identifier"
    "missing type specifier - int assumed."
    usw.

    Verschiedene Symbole werden nicht gefunden, je nach include-Reihenfolge der Lib-pch.h-Dateien, oder so...

    Warum ist das so? Was kann ich tun?

    Danke!



  • Oops, wenn man in jeder pch.h denselben define stehen hat...

    #ifndef _PCH_H_
    #define _PCH_H_

    ...

    #endif

    Tja, spät war's 😃



  • Weiß jemand, ob es einen schöneren Weg gibt, als immer die .pch der Libs mit inkludieren zu müssen, wenn man eben /FI nutzt?


Anmelden zum Antworten