2014-04-20 14 views
6

Używam programu Visual Studio 2012 do napisania projektu C++. Próbowałem użyć optymalizacji O2 lub Ox podczas budowania projektu. Ale spowodował błąd, że linie poleceń "cl: błąd wiersza polecenia D8016:"/Ox "i"/RTC "są niekompatybilne."Visual Studio: błąd wiersza polecenia D8016: opcje wiersza polecenia '/ Ox' i '/ RTC' są niekompatybilne

Próbowałem znaleźć rozwiązanie z Internetu, ale nie działało ono dla mnie.

Mam nadzieję, że ktoś mógłby mi pomóc.

Najlepszy

Odpowiedz

4

Po pierwsze, kod błędu jest nieprawidłowy. Prawdopodobnie popełniłeś błąd, publikując go tak, jak powinien być D8016, a nie D0816. Mam nadzieję, że nie zrobili inne błędy, które mogą wprowadzać w błąd nas ...

Poza tym, komunikat o błędzie jest jasne:

Visual Studio: Błąd polecenia linia D0816: „/ Ox” i „/ Opcje wiersza polecenia RTC”są niezgodne

Ale można również zapoznać się z opisem tego typu błędów tutaj:

Command-Line Error D8016

Krótka odpowiedź - jak mówi błąd - nie można używać obu jednocześnie. Życie jest pełne kompromisu, musisz wybrać którykolwiek z nich, który jest dla ciebie ważniejszy.

Rozwiązaniem jest wyłączenie wersji /RTC dla wersji wydania i używanie jej tylko do kompilacji debugowania w celu znalezienia problemów. Zobacz corresponding documentation, który jest również dostępny z pierwszego linku powyżej, aby uzyskać więcej informacji:

sprawdza błąd czasu są sposobem, aby znaleźć problemy w kodzie bieżącą; Aby uzyskać więcej informacji, zobacz: Jak używać rodzimych sprawdzeń czasu wykonania.

Jeśli skompilujesz swój program w wierszu poleceń za pomocą opcji kompilatora/RTC, każda próba zoptymalizowania instrukcji w twoim kodzie zakończy się niepowodzeniem. Wynika to z tego, że sprawdzanie błędów w czasie wykonywania nie jest poprawne w wersji (zoptymalizowanej).

Powinieneś używać/RTC dla kompilacji rozwojowych;/RTC nie powinno być używane w przypadku sprzedaży detalicznej./RTC nie może być używany z optymalizacją kompilatora (/ O Opcje (Optymalizacja kodu)). Obraz programu zbudowany w/RTC będzie nieco większy i nieco wolniejszy niż obraz zbudowany z/Od (do 5 procent wolniej niż kompilacja/Od).

+0

Dzięki, poprawiłem literówkę w moim tytule. Chcę użyć/OX. Jak mogłem to zrobić? – DreamOn

+0

Witaj Laszlo, po prostu wyłącz/STC w VS i uruchom go bez debugowania. Jestem całkiem nowy w Visual Studio. Dzięki! Czy masz na uwadze, jeśli zaznaczę @txtechelp jako poprawną odpowiedź? Ponieważ ma mniej punktu .. I – DreamOn

+0

@ user3342797: To jest w porządku. :) Zakładając, że chodziło o wyłączenie '/ RTC' w przeciwieństwie do'/STC'. – lpapp

3

Per na MSDN documentation: nie można użyć /RTC z /O Options (Optimize Code).

Jeśli chcesz korzystać z optymalizacji, wyłącz flagę /RTC (lub wyłącz optymalizacje sprawdzania czasu potrzebnego na uruchamianie).

Lub, aby tego uniknąć, utwórz osobne konfiguracje kompilacji, które mają osobne flagi w razie potrzeby (jak kompilacja debugowania i wydania).

+0

Dziękuję za informacje, wiedziałem, że nie można ich używać jednocześnie. Ale jak mogę to rozwiązać? Nie muszę debugować kodu. – DreamOn

+0

Dokumenty MSDN wyjaśniają, jak je wyłączyć w VS, jeśli budynek z linii poleceń po prostu usuwa flagę '/ RTC'. – txtechhelp

+0

Wielkie dzięki. Nie jestem zaznajomiony z budowaniem z linii poleceń z VS. Po prostu wyłączam/STC "off". Wielkie dzięki za pomoc – DreamOn

Powiązane problemy