Linking to SFML libraries without libsfml-dev

700 Views Asked by At

I currently have my Other Linker Options as:

Other Linker Options

Unfortunately, this means that I can only ever run the executable when libsfml-dev is installed, which is undesirable for game development. Whenever I even change the Other Linker Options or Search Directories>Linker will cause an error along the lines of: error while loading shared libraries: libsfml-graphics.so.2.2.0: cannot open shared object file: No such file or directory. I assume this error happens because the libraries are relative, so it is completely portable.

EDIT:

I am using Code::Blocks (as you can see from the image), and I would like to know how I can link to the libraries relatively. They link fine when it is run from Code::Blocks, but when I run the executable I get the above error. My current Code::Blocks options are:

Linker Options:

Linker Options

(Other linker options is empty)

Search Directories:

Search Directories

1

There are 1 best solutions below

5
On BEST ANSWER

Your first linker options would be the correct ones. The Library libsfml-dev is only required on the compile machine.

There must also be another package which actually supplies the .so files. That one will also be required on the machine running the executable unless you package those .so files with your executable. In that case you probably need a script that sets LD_LIBRARY_PATH to the local directory containing the packaged .so files and then executes your program.