Versions Compared

Key

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

Problem

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

...

Code Block
/usr/bin/ld: /usr/local/lib/libjasper.a(jas_image.o): relocation R_X86_64_32 against `.bss' cannot be used when making a shared object; recompile with -fPIC
/usr/local/lib/libjasper.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make1: *** libgrib_api.la Error 1
make1: Leaving directory `src'
make: *** install-recursive Error 1

Solution

Panel
bgColor#fff

A jasper library that has been linked statically is trying to be linked into a dynamic libeccodes.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.
  • Disable 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.

Content by Label
showLabelsfalse
max5
spaces~usa
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel in ("kb-troubleshooting-article","eccodes-faqs","jasper","installation","shared-libraries","relocation","fpic") and type = "page" and space = "UDOC"
labelskb-troubleshooting-article

...