nm: команда не найдена, несмотря на установленные последние binutils Ubuntu 20.04

#ubuntu #debian #gmp #binutils #nm

#ubuntu #debian #gmp #binutils #nm

Вопрос:

Я пытаюсь собрать GCC из исходного кода, и когда я попытался настроить gmp 4.3.2 с помощью ./configure --prefix=/tmp/gcc , я получаю следующее сообщение об ошибке

 checking if globals are prefixed by underscore... ./configure: line 30083: nm: command not found
unknown
configure: WARNING:  ----------------------------------------------------------
configure: WARNING: | Cannot determine global symbol prefix.
configure: WARNING: | nm output doesn't contain a global data symbol.
configure: WARNING: | Will proceed with no underscore.
configure: WARNING: | If this is wrong then you'll get link errors referring
configure: WARNING: | to ___gmpn_add_n (note three underscores).
configure: WARNING: | In this case do a fresh build with an override,
configure: WARNING: |     ./configure gmp_cv_asm_underscore=yes
configure: WARNING:  ----------------------------------------------------------
checking how to switch to read-only data section...     .section        .rodata
checking for assembler .type directive... .type $1,@$2
checking for assembler .size directive... .size $1,$2
checking for assembler local label prefix... configure: WARNING: "nm" failure
configure: WARNING: cannot determine local label, using default L
L
checking for assembler byte directive... .byte
checking how to define a 32-bit word... ./configure: line 30423: nm: command not found
./configure: line 30423: nm: command not found
configure: error: cannot determine how to define a 32-bit word
  

Я уже установил binutils-2.34-6ubuntu1, который, как я нашел в Интернете, находится там, где nm находится команда, но я не могу найти его с помощью which команды. Если есть какая-либо другая информация, необходимая для решения этой проблемы, пожалуйста, дайте мне знать.

Заранее благодарю вас за помощь.

Комментарии:

1. Как вы установили binutils? Можете ли вы найти nm команду в своей файловой системе (например, она находится по адресу /usr/bin/nm )? Каково содержимое PATH переменной (т.е. echo $PATH )?

2. в дополнение к вышесказанному, попробуйте: dpkg -L binutils В котором будет указано расположение файлов, установленных этим пакетом. По-хорошему, возможно, просто попробуйте перезагрузиться, поскольку это довольно низкоуровневые инструменты…

3. Я установил binutils через sudo apt-get install binutils . Мой путь выглядит так /home/"the name of the user"/ARMCompiler6.15/bin /home/"the name of the user"/.local/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games

4. dpkg -L binutils выдает мне этот вывод /usr/bin/nm и /usr/bin/ , похоже, находится на моем ПУТИ

5. Я просмотрел /usr/bin и не смог найти nm .

Ответ №1:

Это sudo apt-get install --reinstall binutils решило проблему.