I am linking a Linux executable referencing a shared library:
g++ Debug/file.o Debug/MyLib.so -o Debug/MyApp -Wl,--rpath='$ORIGIN'
The problem is that the generated MyApp file references “Debug/MyLib.so” so if I run it from the Debug directory, it does not find it. Thus, specifying -Wl,–rpath=’$ORIGIN’ does not help.
Is there a way to tell the GNU LD to use the ‘Debug/MyLib.so’ file, but record it as just ‘MyLib.so’ inside the executable?
If don’t want to change the name of your library, you can use the soname option when
you create it.
For example:
build the library
build the program
(Don’t forget the colon after the -l option)