Frage

Jedes Mal, wenn ich Schub in meinem Projekt gehören erhalte ich eine Million dieser Warnungen. Wer weiß, wie kann ich die Warnungen loswerden?

  

../ hängt \ boost / config / abi_prefix.hpp (19)   : Warnung C4103:   'Hängt \ boost \ config \ abi_prefix.hpp'   : Ausrichtung änderte sich nach einschließlich   Header, kann aufgrund fehlenden Pragma sein   Pack (pop)

Ich weiß, ich kann eine Pragma tun, um die Warnung zu deaktivieren, aber ich mag den Grund für diese Warnungen kennen.

War es hilfreich?

Lösung

Der Grund dafür ist, dass boost nicht / nicht schieben diese Pragmas in jeder Datei Pop, die gepackten Daten werden muss. Sie # include eine separate Datei, die funktioniert die Push (abi_prefix.hpp) und dann eine andere (abo_suffix.hp) danach, das tut das Pop.

Das erlaubt ihnen den gleichen #pragma pack Code überall wiederverwendet werden, was praktisch ist, da es zwischen Compiler variieren kann.

Es ist allerdings vollkommen sicher. Der Pragma Push wird von einem Pop gefolgt, es ist nur aus einer anderen Datei enthält. So sollten Sie wahrscheinlich deaktivieren nur diesen Fehler.

Andere Tipps

Ja, würden Sie, dass aus der #pragma pack Richtlinie in config / abi / msvc_prefix.hpp bekommen. Es zeigt an, dass Standard-Verpackung des Projektes nicht 8. Das ist ziemlich ungewöhnlich ist, ist dies beabsichtigt? Bugs wegen der unterschiedlichen Verpackung kann ein bisschen schwierig zu diagnostizieren sein.

Ich fand einen Weg, diese Warnung zu entfernen.

Sie müssen die Datei boost_1 _ ** \ boost \ config \ user.hpp und Kommentar- die Zeile mit BOOST_DISABLE_ABI_HEADERS bearbeiten

So sollten Sie in dieser Datei sein definieren:

#define BOOST_DISABLE_ABI_HEADERS

Sobald dies geschehen ist, nur mit bjam bauen, wie Sie normalerweise würden .

siehe Kommentare unten für Gefahren dieser Lösung

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top