2014-04-20 1 views
6

Ich verwende Visual Studio 2012, um C++ - Projekt zu schreiben. Ich habe versucht, die O2- oder Ox-Optimierung beim Bau des Projekts zu verwenden. Aber es führte zu einem Fehler, der "cl: Befehlszeilenfehler D8016: '/ Ox' und '/ RTC' Befehlszeilenoptionen sind nicht kompatibel."Visual Studio: Befehlszeilenfehler D8016: Die Befehlszeilenoptionen '/ Ox' und '/ RTC' sind nicht kompatibel

Ich habe versucht, die Lösung aus dem Internet zu finden, aber es hat nicht für mich funktioniert.

Hoffe jemand könnte mir eine Hand geben.

Beste

Antwort

4

Erste Dinge zuerst, Ihr Fehlercode ist falsch. Sie haben wahrscheinlich einen Fehler gemacht, als Sie es gepostet haben, wie es sollte D8016, nicht D0816 sein. Hoffentlich haben Sie nicht andere Fehler gemacht, die uns verleiten könnte ...

Andere als die, die Fehlermeldung ist klar:

Visual Studio: Kommandozeilenfehler D0816: ‚/ Ox‘ und ‚/ RTC‘Befehlszeilenoptionen sind nicht kompatibel

Sie können aber auch die Beschreibung dieser Fehlertyp in hier sehen:

Command-Line Error D8016

Die kurze Antwort - wie der Fehler sagt - Sie können nicht beide gleichzeitig verwenden. Das Leben ist voller Kompromisse, Sie müssen sich für eines entscheiden, das für Sie wichtiger ist.

Die Lösung ist /RTC für den Release-Build zu deaktivieren und nur für die Debug-Builds verwenden, um Probleme zu finden. Siehe corresponding documentation, also auch von dem ersten Link oben verfügbar, für weitere Informationen:

Laufzeitfehlerprüfungen sind eine Möglichkeit für Sie Probleme in Ihrem laufenden Code zu finden; Weitere Informationen finden Sie unter Gewusst wie: Verwenden nativer Laufzeitprüfungen.

Wenn Sie Ihr Programm mit einer der/RTC-Compileroptionen in der Befehlszeile kompilieren, werden alle Anweisungen zur Optimierung des Pragmas in Ihrem Code automatisch fehlschlagen. Dies liegt daran, dass Laufzeitfehlerprüfungen in einem Release-Build (optimiert) nicht gültig sind.

Sie sollten/RTC für Entwicklungsversionen verwenden;/RTC sollte nicht für einen Einzelhandelsbau verwendet werden./RTC kann nicht mit Compileroptimierungen verwendet werden (/ O Options (Optimize Code)). Ein mit/RTC erstelltes Programm-Image ist etwas größer und etwas langsamer als ein mit/Od erstelltes Image (bis zu 5 Prozent langsamer als ein/Od-Build).

+0

Danke, ich habe den Tippfehler in meinem Titel behoben. Ich möchte/OX verwenden. Wie könnte ich es tun? – DreamOn

+0

Hallo Laszlo, ich schalte einfach das/STC in VS aus und laufe es ohne Debugging. Ich bin ziemlich neu in Visual Studio. Vielen Dank! Stört es dich, wenn ich @txtechelp als richtige Antwort markiere? Da er/sie hat weniger Punkt..I – DreamOn

+0

@ user3342797: Das ist in Ordnung. :) Angenommen, Sie wollten "/ RTC" deaktivieren, anstatt "/ STC". – lpapp

3

Per der MSDN documentation: Sie können nicht die /RTC mit /O Options (Optimize Code) verwenden.

Wenn Sie Optimierungen verwenden möchten, deaktivieren Sie das Flag /RTC (oder deaktivieren Sie die Optimierungen Ihrer Laufzeitprüfungen).

Oder um alles zu vermeiden, erstellen Sie separate Buildkonfigurationen, die die separaten Flags wie benötigt haben (wie ein Debug- und Release-Build).

+0

Vielen Dank für Ihre Informationen, ich wusste, dass es sie nicht gleichzeitig verwenden konnte. Aber wie könnte ich es lösen? Ich muss meinen Code nicht debuggen. – DreamOn

+0

Die MSDN-Dokumentation erklärt, wie man es in VS 'ausschaltet', wenn Ihr Gebäude von der Befehlszeile dann nur das '/ RTC'-Flag entfernt – txtechhelp

+0

Vielen Dank. Ich bin nicht vertraut mit dem Erstellen mit Befehlszeile mit VS. Ich schalte das/STC einfach aus. Vielen Dank für Ihre Hilfe. – DreamOn

Verwandte Themen