First we must install the libraries needed by our executable. If you run this on the command line:
ldd executable_filenameyou see all of the dynamic libraries on which this binary depends. In my example, most of the needed libraries can't be found. Install the ia32-libs package:
linux-gate.so.1 => not found
libvmcpp.so (0xf7677000)
libm.so.6 => not found
libgcc_s.so.1 =>not found
libc.so.6 => not found
libdl.so.2 => not found
libpthread.so.0 => not found
/lib/ld-linux.so.2 (0xf7712000)
libstdc++.so.5 => not found
sudo apt-get install ia32-libsThis will satisfy most dependencies, but there is just one left for vmc++: libstdc++.so.5. In previous Ubuntu versions, this library was packaged with ia32-libs package. This problem already has an associated bug, but it sounds like we won't see a fix. So, here is the way to get the 32-bit version of that last package (derived from this thread):
- Go to the Ubuntu package database
- Download the i386 version of the .deb (which is an archive containing the library we need)
- Extract the contents of the .deb file with this command:
ar vx libstdc++5_3.3.6-15ubuntu4_i386.deb - Copy the libstdc++.so.5.0.7 file to /usr/lib32/
sudo cp libstdc++.so.5.0.7 /usr/lib32/. - Create a symbolic link with the standard name
sudo ln -s /usr/lib32/libstdc++.so.5.0.7 /usr/lib32/libstdc++.so.5
Try to run your executable again: it should automatically detect the presence of the new libraries. Yay!
Can you share 32bit VMC++ executable file with me? I emailed Dr. Kawrakow and no reply.
ReplyDeleteSorry for the long reply delay! I wish I could provide the executable, but the software is closed source :( I know that this is a terrible practice for research, I urge you to choose other monte carlo engines that are open sources, such as DOSXYZ_NRC or gDPM
Delete