Trunk discussion / complains

I can see how reference cannot point to temporary object, but in such case compiler should simply pass it by value. References, unlike pointers, are there to give a clue on how to save time on object copying. Changing function prototype here will make code slow down in other uses, I don’t like this in fact.

In this case reference must be const:

void foo(const std::string &);
void bar(std::string &);

int main()
	foo("foo"); // works with gcc/clang
	bar("bar"); // fails

Makes sense. Will commit fix.

Apparently the release version of VCMI 0.96 I built with Visual studio does not work on many systems. Could somebody else provide binaries that work on Windows?

Current develop branch, SDL 2.0.3 , MinGW 4.8.2, Release, without VCMI data

Download 7z | NSIS .exe

After extracting 7zip archive most of files have size 0 :?

I would like to dive into package first just to find out what is the difference and source of our problems.

O_o Works fine to me

msvcp110.dll in your MSVC archive is 64-bit, non 32-bit =)
Just replace this file

Tested on Wine, so not extremely reliable (0.96 worked for me as well)

  • VCMI_Launcher fails to start - Qt requires extra one more library. (platform/windows.dll in our releases). This version comes from /msvc2012/plugins/platforms/qwindows.dll. I guess there should be version for mingw as well.

  • vcmibuilder script is basically useless on Win - should be installed only on Linux

  • as of now, it will also fail due to lack of some graphical files. You can download that package here: But as you already know I’d like to get rid of it by next release.

Warmonger, archive seems to be working for me.
Main difference is that it was compiled with mingw. So it does not have on msvc*.dll’s to begin with - instead it comes with libstdc++ from gcc.

Also crashes on start somewhere in ntdll.dll with windows.dll from my QT 5.3 (wrong version or bug?)

There are many files that I never saw in a package yet, such as starting with av*.

These are from ffmpeg, but ffmpeg support (pr 26) has not been merged yet.

Is there any reason Qt resource files (.qrc) are not used in launcher? Using them would embed resources into executable, it’d also make it more simple to use icons on Android.

Here’s how it looks now, by the way:

No reason I guess. I wanted to keep it simple and avoid any non-essential Qt features to ease compilation on Win.

If you think that this is a good idea then go ahead.

Warmonger, try to replace msvcp110.dll in your vcmi MSVC package to this

Are there any docs regarding compilation of launcher on Windows? Here’s the current draft which only works on Linux.

I don’t think so. What we need is some way to compile qrc files on Visual Studio without generating MSVC project files via cmake/qmake.

Google provides quite a lot of results on this topic so should be easy to do. Assuming one have Visual Studio. I think as of now Warmonger is the only one who uses it.

Warmonger, perhaps you should reupload 0.96 release to include fixed dll? Current link does not seems to be up-to-date (16 days old).

Had a crash with recent version (Ivan’s ppa), tried to launch one mission and it said:

pure virtual method called
terminate called without an active exception

Then the game crashed, but when I tried to do the same thing in gdb this mission loaded correctly. :frowning:

I decided to compile current master branch from trunk but got this error:

40%] Building CXX object lib/CMakeFiles/vcmi.dir/registerTypes/TypesPregamePacks.cpp.o
41%] Building CXX object lib/CMakeFiles/vcmi.dir/registerTypes/TypesServerPacks.cpp.o
make[2]: *** No rule to make target /usr/lib/x86_64-linux-gnu/', needed bylib/’. Stop.
make[1]: *** [lib/CMakeFiles/vcmi.dir/all] Error 2
make: *** [all] Error 2

Does anybody have the same problem?

One possibility is corrupted or missing boost::program_options. Very unlikely if compilation was OK before.

Another - could be CMake weirdness. Try recreating completely build system (delete build directory and re-run cmake)

Hi, just wanted to say, that thanks to Mixaill’s tutorial on Wiki I’ve successfully managed to compile latest dev branch of VCMI and surprised when I saw how much of space it requires (with boost, Qt and other stuff it’s over 5 GB). Compilation time was quite long, overall it took about 2, 3 hours (I mean compilation of VCMI only) I guess. As I wrote somewhere at this forum about Launcher, that compiling it on Win XP system should help were indeed true. And of course a little question to those who know MinGW more than I do: because of big sizes of some parts of this project (exactly VCMI_lib.dll - almost 300 MB, VCMI_client.exe - over 100 MB) - is there a way to reduce the size of these files? And if yes, how then?