Я не могу найти никакой документации о том, как настроить 32-битный режим с помощью Red Hat Developer Toolset (версия 9.0 в данном случае работает на CentOS 7). В примечаниях к выпуску упоминается:
Также поддерживается генерация и управление 32-битными двоичными файлами
Также поставляются необходимые 32-битные библиотеки в:
/opt/rh/devtoolset-9/root/usr/lib/gcc/x86_64-redhat-linux/9/32/
Однако здание терпит неудачу. Пример попытки создать минимальную int main() {}
программу:
$ scl enable devtoolset-9 'g++ -m32 tst.cpp'
/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: skipping incompatible /opt/rh/devtoolset-9/root/usr/lib/gcc/x86_64-redhat-linux/9/libstdc++_nonshared.a when searching for -lstdc++_nonshared
/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: cannot find -lstdc++_nonshared
collect2: error: ld returned 1 exit status
Библиотека, которую не удается найти, действительно существует, хотя:
/opt/rh/devtoolset-9/root/usr/lib/gcc/x86_64-redhat-linux/9/32/libstdc++_nonshared.a
Никакое количество -L
флагов не исправляет ее (и в любом случае это было бы неправильное решение: компоновщик даже не должен пытаться загрузить 64-битные библиотеки в режиме -m32
.)
Что мне здесь не хватает?