ld не может найти существующий 32-разрядный libm

Я только публикую после исчерпания всех других ответов, которые я могу найти в google. Я все еще не могу понять свою проблему. Я пытаюсь использовать g ++ для компиляции в 32-разрядной версии на компьютере Red Hat. Это моя команда:

BITS=32 OS=`uname -s` g++ -D$OS -O3 -Wall -pipe -m$BITS -c *.cpp 

Но компоновщик не может найти библиотеку:

 /usr/bin/ld: cannot find -lm collect2: ld returned 1 exit status 

Но … 32-bit libm.so существует в обычном месте.

 >file /usr/lib/libm.so /usr/lib/libm.so: symbolic link to `../../lib/libm.so.6' >file /lib/libm.so.6 /lib/libm.so.6: symbolic link to `libm-2.12.so' >file /lib/libm-2.12.so /lib/libm-2.12.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped 

Я пробовал простые вещи, например, проверил, что / usr / lib по-прежнему фактически указан в LD_LIBRARY_PATH, и я попытался добавить -lm в команду g ++.

Все эти пакеты glibc установлены (glibc предоставляет libm.so и libm.a):

 compat-glibc.x86_64 1:2.5-46.2 compat-glibc-headers.x86_64 1:2.5-46.2 glibc.i686 2.12-1.132.el6 glibc.x86_64 2.12-1.132.el6 glibc-common.x86_64 2.12-1.132.el6 glibc-devel.i686 2.12-1.132.el6 glibc-devel.x86_64 2.12-1.132.el6 glibc-headers.x86_64 2.12-1.132.el6 glibc-utils.x86_64 2.12-1.132.el6 

Я также наткнулся на предложение:

 >readelf -a /usr/lib/libm.so | grep PATH 

но он ничего не выводит.

Любые другие мысли или идеи? Можно ли получить жалобу от компоновщика, когда что-то еще не так? Любой ответ очень ценится.

  • Я использовал g ++, использовал его, установил make, и теперь g ++ невозможно установить
  • Установите gcc4.9 на openSuse 13.1
  • sudo: "g ++: команда не найдена"
  • Как установить g ++ 4.9 на debian stretch
  • Как установить GCC 5 на debian jessie 8.1
  • установите g ++ на RHEL 6
  • Как установить C ++ 11 в качестве моего компилятора по умолчанию?
  • Сокращение команды сборки
  • One Solution collect form web for “ld не может найти существующий 32-разрядный libm”

    Ну, я глупый. Это действительно был – --static вариант в моей команде связывания. Вместо статических библиотек я избавился от --static , обработал некоторые ошибки, связанные с кодом, и он правильно компилируется. Спасибо за ответы.

    Interesting Posts

    IBM AIX: Как настроить отправку SSH X на непривилегированного пользователя без дома?

    Какие альтернативные серверы поддерживают sudo и как они настроены?

    обновить альтернативы для изменения всей инструментальной цепочки

    Восстановить VG после добавления дисков и перезагрузки

    Как сделать сообщения журнальной строки красными?

    Функция не выполняется в скрипте

    Проблемы с установкой Dropbox в Scientific Linux

    Восстановление (еще не созданного) RAID5 с URE (неисправимые ошибки чтения)

    Файловая система для накопителя SSD

    rsync не удаляет файлы в каталоге назначения

    Плазменная сбой при переключении приложений с помощью панели задач

    Уровень звука по умолчанию для всех устройств ALSA

    Как разместить запись рабочего стола в списке приложений в диалогах с открытыми диалоги?

    Инструмент Diff с хорошим выходом, например kdiff3

    Ошибка: / etc / sudoers не работают – Собственность неверна

    Linux и Unix - лучшая ОС в мире.