Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Excerpt
hiddentrue

jasper library that has been linked statically is trying to be linked into a dynamic libgrib_api.so. Libraries linked to a dynamic library must use "relocatable" code, and normally static libraries aren't. Possible solutions

Getting an "relocation R_X86_64_32 against `.bss' cannot be used when making a shared object; recompile with -fPIC"

Solution

Like for example the following case

...

Panel
bgColor#fff

A jasper library that has been linked statically is trying to be linked into a dynamic libgrib_apilibeccodes.so. Libraries linked to a dynamic library must use "relocatable" code, and normally static libraries aren't. Possible solutions are:

  • If possible, use a dynamic version of jasper. Build it with support for static libraries. Most rpm or deb packages already include a dynamic version that will be taken in preference. Or
  • Build jasper with the "-fPIC" CFLAG. In that case even the static library will be relocatable.
  • Use the "--disable-shared" option in grib_apiDisable shared libraries in ecCodes. In this case no dynamic library will be produced (just the static version) and the problem won't be applicable any more.

...