Witam, dawno mnie nie było, postanowiłem wrócić do ponownego skrypcenia i grzebania przy VCMI. Zaaktualizowałem wszystkie pliki kodu źródłowego i teraz pytanie, czy potrzebuje VCMI 2011? Mogę mieć lekko pliki pomieszane i pokazuje mi projekt na wersje 2010 ale mi jej nie odpala.
Okej usunięcie wszystkich plików pomogło, załadowałem boosta. Niestety dostaje taki błąd:
1>------ Build started: Project: VCMI_lib, Configuration: Debug Win32 ------
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(511,5): error MSB8008: Specified platform toolset (v110) is not installed or invalid. Please make sure that a supported PlatformToolset value is selected.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Przestaw we właściwościach wszystkich projektów (możesz je naraz zaznaczyć) platform toolset na v100 (Visual Studio 2010).
Niemniej ostrzegam — starego Visuala (2010) chyba już nikt z deweloperów nie używa i możesz natrafić na jakieś drobne problemy. Chcemy wkrótce (miesiąc/parę) ostatecznie porzucić wsparcie wersji 2010.
Więc czas zainstalować 2012
Dzięki za pomoc
Do usług.
Jakbyś napotkał inne problemy, służę pomocą.
Witam, niestety mam kolejny problem, podczas kompilacji wyskakuje błąd, że w projekcie brakuje plików: winsock2.h i window.h. Nie powinny być razem z VS?
To dziwne. Powinny być razem z VS i być automatycznie widoczne.
Albo domyślna lokacja jest błędna (mogło się coś skaszanić przy przenoszeniu ustawień z VC 2010), albo gdzieś skasowało jej dziedziczenie.
Wejdź we właściwości któergokolwiek z projektów -> VC++ directories -> Include directories -> l-klik, przycisk z prawej i
- Jaka jest zawartość pola Inherited Values?
- Czy checkbox Inherit from parent or project defaults jest zaznaczony? Powinien.
- Kliknij na przycisk Macros. Czy jest obecny wpis $(WindowsSDK_IncludePath)? Czy jego wartość jest ścieżką, gdzie faktycznie masz Windows.h? Jeśli nie — zrób search na dysku i sprawdź, gdzie naprawdę windows.h się znajduje.
Jeśli jest, udaj się property sheet w którym dodawałeś Boosta i tam powtórz pkt 1 i 2.
Inherited Values:
$(SolutionDir)..\include
C:\c++\boost_1_47_0
$(VCInstallDir)include
$(WindowsSdkDir)include
$(FrameworkSDKDir)\include
- teraz zaznaczyłem
3.jest wpisany i jest ścieżka która prowadzi do windows.h
Żadnych zmian nie uświadczyłem. Ale spróbuję zrebuildować.
żadnych zmian, nadal nie widzi.Mam w property managerze we wszystkich property sheetach zmienić te include i libraries?
We właściwościach wszystkich projektów i wszystkich property sheets ta opcja (Inherit from parent…) musi być zaznaczona. Wtedy powinno łapać.
(domyślnie jest. nie skasowałeś jej jakoś, np. wklejając ścieżkę i usuwają, co było wczesniej?)
Nic nie zmieniałem. Dla pewności, ściągnąłem pliki zmodyfikowane jeszcze raz.
Witam z powrotem. Pomogło na sztywno wpisanie do VS lokalizacji bibliotek.
Jednak mam nowy problem i mam nadzieję, że ostatni.
Dostaje błąd:
cannot open file "kernel32.lib"
Plik jest, jak widać po błędzie, ale nie może go odczytać.
Żartowałem jednak to nie koniec, udało mi się to naprawić, lecz teraz mam problem z boostem o.O, jeden z kilku: [code] Error 2 error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in BattleAction.obj C:\VCMI source\trunk\lib\libboost_filesystem-vc100-mt-gd-1_47.lib(path_traits.obj) VCMI_lib [/code]Próbujesz linkować Boosta z Visuala 10 do VCMI budowanego Visualem 11. Tak nie zadziała. C++ nie ma ustandaryzowanego ABI i przez to biblioteki C++ musza być budowane tym samym kompilatorem, co projekt z nich korzystający.
Zbuduj Boosta wg instrukcji z wiki, albo pobierz gotowe binarki: sourceforge.net/projects/boost/f … -binaries/
32-bitowy build Visualem 2012 to wersja “msvc-11.0-32.exe”.