Potrzebuję więc budować projekty w Visual Studio2005 i Visual Studio 2015 na tym samym komputerze (64-ale, win10). Wracając do projektu zbudowanego w 2005 roku, Boost uważa, że nadal używam kompilatora 2017 i zgłaszam różnego rodzaju błędy. Głównie ten: Unknown compiler version
Moje pytanie: Czy program Visual Studio 2015 ustawia coś na moim komputerzemaszyna, której pobudka będzie szukała, aby określić wersję kompilatora, czy też coś o czymś przypomina? Dla mojego życia nie mogę się dowiedzieć, gdzie boost szuka tych informacji.
Uważam, że właśnie w tym miejscu sprawdza się doładowanie:
#if (_MSC_VER > 1600)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
# pragma message("Unknown compiler version - please run the configure tests and report the results")
# endif
#endif
Gdzie jest _MSC_VER
zestaw?
Odpowiedzi:
-1 dla odpowiedzi nr 1Aby zbudować system Boost.Build dla swojej wersji programu Visual Studio, uruchom plik bootstrap.bat w odpowiednim wierszu polecenia programu Visual Studio.
Podnieść.Kompilacja lubi domyślnie wyższe wersje Visual Studio podczas kompilacji. Gdy Boost.Build zdaje sobie sprawę, że ty mieć zainstalowanych więcej niż jedną wersję Visual Studio, utworzy zmienne środowiskowe, takie jak:
VS140COMNTOOLS -> Visual Studio 2015
VS80COMNTOOLS -> Visual Studio 2005
Możesz przełączyć się z kompilatora VC ++ 14.0 na kompilator VC ++ 8 przez:
- Zmiana nazwy zmiennej środowiskowej VC140COMNTOOLS - możesz umieścić "x" przed nią lub dodać _DISABLED do to.
- Nawigowanie do C:Użytkownicy {twoja nazwa użytkownika} AppDataTemp i usuwanie automatycznie generowanych skryptów "b2_msvc-8.0 _ {.. blahblah ..}. cmd" (powinno być 2 - jeden dla wersji 32-bitowych i jeden dla wersji 64-bitowych). Chociaż nazwa wydaje się być poprawne, nie daj się oszukać - plik ten nie jest generowany często i domyślnie jest najnowszą wersją Visual Studio na twoim komputerze.
Po wykonaniu obu tych kroków kompilator odpowiednio zregeneruje skrypty kompilacji i powinien działać.