Я делаю все это на VLE, и ниже я работаю с:
Запуск ОС: Linux Centos 7
G CC: 4.8.5 & 7.1.0
Я пытаюсь использовать GNU autotools (libtool, autoconf, automake)
для создания проекта в 32-битной среде, используя gcc-7.1.0.
Также, как требование, я должен сделать это на Centos 7
и использовать gcc-7.1.0.
По-видимому, последняя версия gcc
, которая может быть официально обновлена с помощью yum
, - это 4.8.5
. Тем не менее, я успешно установил g cc -7.1.0 из официального источника и даже включил --enable-multiarch --with-list-multilib=m32,m64 --enable-multilib
во время configure
.
Проблема, с которой я сталкиваюсь, заключается в том, что autotools
, кажется, хочет использовать 64-битные библиотеки, хотя я включаю ключ компилятора -m32 в CXXFLAGS
, CFLAGS
и LDFLAGS
. Причина, по которой я думаю, что при подключении используются 64-битные библиотеки, заключается в том, что я получаю следующую ошибку:
libtool: link: g++ -m32 -fPIC -Wall -Wextra -Weffc++ -Werror -std=c++03 -O2 -o fldprog fldprog-icpprog.o ../../ ../seal3/fld/src/.libs/libbsp_fld.a -lpci /usr/local/lib/../lib64/libstdc++.so -lm -Wl,-rpath -Wl,/usr/local/lib /../lib64 -Wl,-rpath -Wl,/usr/local/lib/../lib64
/usr/local/lib/../lib64/libstdc++.so: error adding symbols: File in wrong format
и при переименовании /usr/local/lib64
в lib64_something
, программа будет компилировать без ошибок. Тем не менее, я хочу найти постоянное решение.
Я искал в inte rnet ответы, но ни один из них, похоже, не работает. Я пробовал включить - от L/usr/local/lib
до AM_LDFLAGS
, AM_CFLAGS
в configure.ac
Буду признателен за любой вклад. Спасибо.
Редактировать: Исправлено