2016-06-26 17 views
0

Ich schrieb einen kleinen C++ Code und kompilierte ihn in MSVS 2013. Er kompilierte gut. Jedoch habe ich versucht, es auf Ubuntu mit GCC zu kompilieren und es gab einen Fehler, den ich verwende std::abs, die nicht existiert. Dann löste ich das Problem, indem ich cmath einschloss.Wie man MSVC davon verbietet, Header selbst einzubeziehen

Warum MSVS nicht meckern? Enthält einige Header selbst. Wenn ja, wie kann ich MSVS davon abhalten, alles mit einzubeziehen, was erforderlich ist, damit dieser nicht plattformübergreifende Code verschwindet?

Antwort

2

hat es einige Header selbst gehört

Während es, dass je nach den Projekteinstellungen tun könnte, das Problem wahrscheinlich keine direkten umfassen. Was MSVC (und auch GCC) auch tun, ist, Header A in Header B aufzunehmen, weil A einen Teil hat, der intern in B benötigt wird. Als Nebeneffekt auch natürlich werden Sie andere Symbole von Header-B erhalten ...

Wenn ja, wie kann ich MSVS von einschließlich leugnen, was es

Ohne Umschreiben des gesamten Kopfbaum will Du kannst nicht. Das (und viele andere Compiler-spezifische Dinge) ist ein guter Grund, sowohl mit VS als auch mit GCC immer oder zumindest in regelmäßigen Abständen zu kompilieren, anstatt zuerst das ganze Programm mit einem Compiler zu schreiben. (insbesondere wenn VS Ihr Hauptwerkzeug ist).