Also meine persönliche Erfahrung ist, dass unter Windows so oder so so gut wie alle Makefiles etc. versagen. Es mag vielleicht auch daran liegen weil ich zu wenig Erfahrung von der Plattform habe, aber die Hoffnung einfach so eine beliebige Lib builden zu können habe ich schon lange aufgegeben. Und abgesehen von zusätzlichen Inkompatibilitäten falls es tatsächlich welche gibt, hat statische Linkung auf jeden Fall nur Vorteile für Windowsnutzer.
Wenn man sich nicht genügend damit auskennt, muss es einem ja auch nicht gross interessieren, aber wenn man das Ganze genauer anschaut und anfängt mit vielen verschiedenen Libraries zu arbeiten, dann wird es auf einmal sehr wichtig wie was gelinkt wird und ob ich da jetzt 10 Buildscripts umschreiben muss, etc.
Dem gegenüber steht das MinGW, das mir nicht mehr besonders aktiv entwickelt zu werden scheint. "Recent comments: 3 years 30 weeks ago" und so...
Nur Leute die sich nicht mit der GCC Entwicklung für Windows interessieren betrachten noch die "originale MinGW" Version. Alle anderen sind bereits zum MinGW-w64 Projekt hinüber gegangen (so auch mein Link). MinGW Builds bieten auch einen einfachen Installer an (siehe Link) und sie sind praktisch immer up-to-date (im Moment GCC 4.9.1). Aber es soll ja immer Leute geben, die eine schöne Website brauchen, bevor sie ein Produkt verwenden.
Imo ist es sinnvoll, sich auf jeder Plattform an den jeweiligen Standard zu halten. Unter Linux wäre das GCC, unter Windows MSVC, unter Apple afaik clang
Und wieso genau ist das sinnvoll? Habe bis jetzt keinen einzigen Nachteile mit MinGW unter Windows gefunden, nein im Gegenteil nur Vorteile - C++11 Support, einfacheres Handling da gleich wie unter Linux, keine Microsoft spezifische Quirks, etc.
Ich hoffe nun aber auch schwer, dass du unter Windows IE, unter Linux Firefox, unter OS X Safari und unter Android Chrome verwendest und auf Windows ja nie Open/Libre Office installierst!
Mit MinGW bekommt man einen vollwertigen Windows Compiler. Nur weil die Firma die das OS geschrieben hat auch einen Compiler publiziert, heisst das noch lange nicht, dass dieser unschlagbar besser ist. Die OS Entwickler werden wohl sehr wenig mit dem Compiler Team zu tun haben und anders rum genau so.
Jede Plattform hat ihre eigene Kultur. Wenn man eine Anwendung auf verschiedenen Plattformen verfügbar machen will, ist es imo essentiell, dass die jeweiligen Varianten die jeweilige Kultur respektieren. Es gibt imo nichts schlimmeres als z.B. diesen Qt oder Java Kram, wo effektiv einfach nur eine weitere Plattform über alle möglichen Betriebssysteme oben drüber gestülpt wird, was im Endeffekt dann dazu führt, dass sich eine damit entwickelte Anwendung auf jedem Betriebssystem "fremd" anfühlt...
Ich würde fast mal wetten, dass du schon Qt Applikationen verwendet hast, welche so sehr "native" waren, dass du es gar nicht bemerkt hast und wenn nicht Qt dann GTK oder wxWidget, welche ja auch nicht "native" sind.
Von einer Position der Cross-Platform Entwicklung aus, spielt es keine Rolle welche Kompiler verwendet werden. Wenn man natürlich aber komplett auf OS spezifische Programmierung geht, macht es vielleicht dann Sinn auch auf einem 100% OS spezifischen Kompiler was zu schreiben. Das Gleiche gilt für Libraries; Cross-Platform Libraries unterstützen meistens alle möglichen Kompiler, während OS spezifische nur die 100% OS spezifischen Kompiler unterstützen. Aber eine allgemeine Empfehlung nur "standard" Kompilers zu verwenden find ich schon fast lächerlich.