c++linuxdevil

devIL .so on ubuntu where do I put them - run time error


I am currently porting my game from windows to Linux. Debian(home) and Fedora(uni). It builds fine however at run time is expecting error while loading shared libraries: libIL.so.1.

Firstly what is the .1 all about? I tried use placeing libIL.so and .1 next to the executable but that still had the same error. What do I do? - Bare in mind that I do not have root access on the Fedora machine.


Solution

  • Put libIL.so into the same directory as your executable mygame, then create a start-up script for your game, say mygame.sh:

    #!/bin/sh
    LD_PRELOAD=. ./mygame
    

    Now you can start your game from the command line using ./mygame.sh.


    edit: What I actually meant above was LD_LIBRARY_PATH instead of LD_PRELOAD. Put all your libraries together with your executable and use LD_LIBRARY_PATH=. , then the library loader will look in the current folder for all libraries it needs.