How do you link to a specific version of a shared library in GCC

Instead of using "-lcurl" use "-l:libcurl.so.3" And ofcourse also use "-L _installed_path_"


You can pass the actual .so file instead of -l on the linker command line, and it ought to do what you want.


How about creating a symlink local to your project that links to .3, then you can just use -L at compile time. I'm not sure if you'd get a name conflict though, but you could always call it libcurl-old.so just in case.


I think the correct way to do that will be to use the --filter and --auxiliary flags of the linker.

They are not very documented, but should allow you to load symbols from different versions of the same library according to the machine you are installed on.