Compilerwechsel: cl.exe 7.1 -> cl.exe 8.0



  • Hallo,
    wir müssen unsere Generierung vom VisualStudio2003 (cl.exe 7.1) auf Visualstudio2005 (cl.exe 8.0) umstellen. Den C++-Compiler habe ich in unsere makefile Umgebung integriert und vom Prinzip funktioniert auch alles gut.
    Es treten jetzt allerdings einige Fehler auf, die bei Verwendung von cl.exe in der version 7.1 noch nicht auftraten, z.B. "C++ does not support default-int", wenn bei einer Variablen der Typ "vergessen" wurde anzugeben.
    Deswegen meine Frage, ob es einen Switch gibt, der beim kompilieren nicht so pingelig ist, bzw. dass der Compiler ggf. sogar in eine Art "cl.exe 7.1 Modus" geschaltet werden kann? Die Hilfe unter cl.exe /? hat mir noch nicht weitergeholfen. Werde zwischenzeitlich mal in Google weiter recherchieren.

    Danke schon einmal für die Hilfe!



  • Also zuerst mal sollte gesagt werden, dass default-int ein Feature von ANSI-C ist, nicht von C++. Wenn Ihr C-Programme habt, wo so etwas vorkommt ist das vollkommen okay (wenn auch reichlich antik :D). Wenn es um C++ geht, würde ich den Aufwand auf mich nehmen, das zu ändern, und zwar schleunigst. Denn in C++ ist das nicht nur "vergessen", sondern schlicht falsch.

    Wenn das geklärt ist, oder Korrekturen nicht möglich sind (bei uns ist das der Fall: Eine von UNIX-C nach Windows portierte Bibliothek wurde unter MSVC 6 plötzlich als C++ übersetzt, und wegen diverser Erweiterungen ist das jetzt auch nicht mehr änderbar), oder die Notwendigkeit besteht, C-Header in C++-Programmen zu benutzen, muss natürlich eine andere Lösung her. Die haben wir irgendwann eher durch Zufall entdeckt:

    (Eigentlich dürfte ich das garnicht erzählen, bevor ihr nicht 10000% sicher seid, dass Ihr das nicht korrigieren könnt :D)

    In den Projektoptionen unter Konfigurationseigenschaften, C/C++, Erweitert gibt es das Feld "Bestimmte Warnungen deaktivieren". Witzig finde ich, dass man damit auch Errors deaktivieren kann, wenn das dort gestanden hätte wären wir bestimmt früher darauf gekommen. Dort musst Du die Fehlernummer ohne C eintragen. Auf der Kommandozeile wäre das /wdXXXX wobei XXXX wieder die Fehlernummer ohne das C ist.



  • LordJaxom schrieb:

    (Eigentlich dürfte ich das garnicht erzählen, bevor ihr nicht 10000% sicher seid, dass Ihr das nicht korrigieren könnt :D)

    In den Projektoptionen unter Konfigurationseigenschaften, C/C++, Erweitert gibt es das Feld "Bestimmte Warnungen deaktivieren". Witzig finde ich, dass man damit auch Errors deaktivieren kann, wenn das dort gestanden hätte wären wir bestimmt früher darauf gekommen. Dort musst Du die Fehlernummer ohne C eintragen. Auf der Kommandozeile wäre das /wdXXXX wobei XXXX wieder die Fehlernummer ohne das C ist.

    Hallo,
    danke für die Erläuterungen... das war mir nicht so klar. Mit dem "antik" hast du übrigens vollkommen Recht... aber das war vor meiner Zeit 🙂
    Ich habe mich jetzt dazu entschlossen, die Typdefinitionen manuell hinzuzufügen. Wird zwar viel Arbeit, aber was solls 🙂


Anmelden zum Antworten