VCMI on Linux

Thanks for pointing that log, indeed it has some more info:
cl1p.net/vcmi64conflog/

But I don’t find there any tip why it ends with “configure:5457: error: Could not link against !”

I also applied all your 5 linux patches against r793 and it didn’t help me :-/

No idea. I can compile on 32 and 64 bits system (with another fix).
May be your distrib is a little too bleeding edge.

You could try any of the following:

  • regenerate the whole build system:
  • compile a 32 bits executable
  • add some traces into the configure script to understand what’s wrong. You already have the line number, so that will help to close on the error.

Thank you for your help. So it seems like it can’t compile against libboost_filesystem library:

if test `eval echo '${'$as_ac_Lib'}'` = yes; then
  BOOST_FILESYSTEM_LIB="-l$ax_lib";  link_filesystem="yes"; break
else
  link_filesystem="no"
fi

To this point everything seems ok, cause it ends with “yes”:

But here it brakes:

if test "x$link_filesystem" != "xyes"; then
{ { echo "$as_me:$LINENO: error: Could not link against $ax_lib !" >&5
echo "$as_me: error: Could not link against $ax_lib !" >&2;}
   { (exit 1); exit 1; }; }

test “x$link_filesystem” returns something different than “xyes”, I tried to echo what it returns, but I don’t know how to as I have pretty basic knowledge on bash scripting. I will try to take a closer look on it during weekend.

Best regards.

You should still try “autoreconf -i”.

Well it’s currently also launched from bootstrap.sh script (autoreconf --install) and I fire it before every compilation :slight_smile: And I’m not so eager to build it in 32bits as I know it’s not playable yet, I just want to report a success story from the system I really use.

Not sure if that’s going to help, but I posted a patch that updates boost’s M4 files.

As for bootstrap.sh, it should go away. autoreconf --install is doing everything it does.

Sadly it didn’t help me, but now I’m pretty sure I have a broken install of boost_filesystem library. When I changed this line in ./configure script:

if test "x$link_filesystem" != "xyes"; then

to

if test "x$link_filesystem" != "xxx"; then

configure didn’t exit with “error: Could not link…” and finished succesfully. But the make didn’t, with a lots of errors about 'undefined reference to boost:: ...

^H the changed code was (…) == “xxx” (…)

There was recently new package of this library on update’s repo but it wasn’t fixed.

Maybe I should email to those guys.

I have the following in my config.log:

It is possible that you don’t have a path to where the library is installed. By default they are installed in /usr/local/lib. Check /etc/ld.so.conf and/or /etc/ld.so.conf.d/. If it’s not there, add it and rerun “ldconfig”. Some distributions do not include that path.
Also check that libboost_filesystem-g cc43-mt-1_38.so is indeed installed in said path.

I have those headers in /usr/include/boost/:

But this is odd, my config.log never points there really :-k

And ./configure --with-boost-libdir=/usr/include/boost doesn’t work, but I will try more configure option regarding paths… Thank you.

r1063 gets terminated by signal SIGSEGV (Address boundary error) at very beginning:

Cannot find file: ZNUMIT.MSKbasic_string::_S_create

An old bug that got fixed and unfixed :slight_smile:
It should be fixed in r1065.

I’m afraid It’s not fixed for me in r1065 :confused:

Extract this package into your /Data folder: download.antypika.aplus.pl/dataEN.7z

Thx, it helped, which is odd, because i remember copying some english data eariler after your advice in other thread… btw, i still need to build sdl_mixer with mp3 support to have that damn intro music playing, but adding --enable-music-mp3 to configure of sdl_mixer does not make it linked to libsmpeg :S

./configure --enable-music-mp3
(...)
checking for SMPEG - version >= 0.4.3... yes                                                                  
-- dynamic libsmpeg -> libsmpeg-0.4.so.0
(...)
ldd ./build/.libs/libSDL_mixer-1.2.so.0.2.6
        linux-vdso.so.1 =>  (0x00007fff181ff000)
        libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007f044aa8d000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f044a870000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f044a517000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f044a2c1000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f044a0bc000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f044afde000)

Yeah… it was my fault. That old package was created from my old WoG installation which had installed Acid Dragon’s “New Upgrades” mod.
Now I’ve updated package and it contains only clean WoG files which should not make any troubles :slight_smile:

I think I will join this project now not possible because i don’t know enough from C++ (Last learn LOOP and classes). But i will want to help VCMI TEAM and i love programming. SDL engine driffrent me but i still want it know :D:D:D sry for horiable english.

At revision 1143

Making all in lib
make[1]: Entering directory `/home/ALL/games/hmm3/vcmi/lib'
make[1]: *** No rule to make target `../CGameState.cpp', needed by `CGameState.lo'.  Stop.
make[1]: Leaving directory `/home/ALL/games/hmm3/vcmi/lib'
make: *** [all-recursive] Error 1

:cry:

simply:
makefile wasn’t updated after rearanging file structure of code :stuck_out_tongue:

I’ve finally been able to compile it under Linux. Quite a pain to get everything working when you can only install things to your home directory. Now I should be able to test it on said system whenever I’m at university.

It should be mentioned that you need to have ffmpeg compiled as shared libraries with --enable-shared or otherwise you will get a mountain of errors about undefined references.