11

I am getting this error every time, while compiling programs, configuring and installing some things like binutils, textinfo, etc.:

/usr/local/bin/ld: this linker was not configured to use sysroots
collect2: error: ld returned 1 exit status

When will it come and what is the actual problem? Also, how do I solve it?

I removed binutils using the Synaptic package manager, but with the same result.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Reddi Rajendra P
  • 704
  • 9
  • 25

2 Answers2

5

If you were attempting to install a version of binutils that should work alike the one found in /usr/bin, you should know that

  • gcc invokes ld with a --sysroot=/ option.
  • ld of binutils built from source with the default options rejects a --sysroot option.
  • A --sysroot option will only be accepted by ld if binutils was configured with option --with-sysroot.

So, to cover this use case, configure binutils with option --with-sysroot=/.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Bruno Haible
  • 1,203
  • 8
  • 8
  • Thanks for this answer - it should be the accepted one. For anyone compiling `binutils` from source, I recommend this resource: http://www.linuxfromscratch.org/lfs/view/development/chapter06/binutils.html – peachykeen May 11 '20 at 17:20
2

Try to use gcc with the following option: gcc --sysroot=/usr/local

But, as the others told you in the comments, don't try to mess your system with critical packages such as the binutils, except if you know what you are doing.

perror
  • 7,071
  • 16
  • 58
  • 85