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

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

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

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

  • Организуйте локальные сборки
  • Компиляция моего драйвера wifi (RTL8192CE) не выполняется
  • Объяснение процесса сборки ядра в системах Ubuntu / Debian
  • Как скомпилировать Chromium OS
  • sipe (плагин pidgin-gaim) не может найти заголовки libpurple
  • Backporting OpenSSL-1.0.1e для Debian Lenny (armv4l)
  •  /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 

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

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

  • Как найти выпуск NetBSD для CentOS 6.5?
  • Тайна двоичных файлов
  • Как скомпилировать драйвер во FreeBSD
  • Неясная ошибка autotools с проектом Epson iscan
  • Версия версии операционной системы отличается от версии ядра. Это может вызвать проблемы?
  • Что делали пользователи или использовали перед командой?
  • One Solution collect form web for “ld не может найти существующий 32-разрядный libm”

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

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