Gcc 如何配置GNU Autotools在Centos7上以32位编译程序?
我在VLE上做所有这些,下面是我的工作: 运行操作系统:Gcc 如何配置GNU Autotools在Centos7上以32位编译程序?,gcc,g++,centos7,32bit-64bit,autotools,Gcc,G++,Centos7,32bit 64bit,Autotools,我在VLE上做所有这些,下面是我的工作: 运行操作系统:Linux Centos 7 通用条款:4.8.5和7.1.0 我正试图使用GNU自动工具(libtool、autoconf、automake)使用gcc-7.1.0构建一个32位的项目。此外,作为一项要求,我必须在Centos 7上执行此操作,并使用gcc-7.1.0。 显然,可以通过yum正式升级的gcc的最新版本是4.8.5。但是,我成功地从官方源代码安装了gcc-7.1.0,甚至在configure期间包括了--启用多库--list
Linux Centos 7
通用条款:4.8.5和7.1.0
我正试图使用GNU自动工具(libtool、autoconf、automake)
使用gcc-7.1.0构建一个32位的项目。
此外,作为一项要求,我必须在Centos 7
上执行此操作,并使用gcc-7.1.0。
显然,可以通过yum
正式升级的gcc
的最新版本是4.8.5
。但是,我成功地从官方源代码安装了gcc-7.1.0,甚至在configure
期间包括了--启用多库--list multilib=m32,m64--启用多库
我遇到的问题是,autotools
似乎想要使用64位库,尽管我在cxflags
、CFLAGS
和LDFLAGS
中包含了-m32编译器开关。我认为它在链接时使用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\u something
时,程序将编译无误。然而,我想找到一个永久的解决办法
我在网上搜索过答案,但似乎没有一个是真的有效的。我已尝试将-L/usr/local/lib
加入AM\u LDFLAGS
,AM\u CFLAGS
加入configure.ac
如果您有任何意见,我将不胜感激。多谢各位
编辑:修订我怀疑问题出在GCC 7工具链上,而不是自动工具上。通过直接运行编译器和链接器,您能否成功构建32位可执行文件?如果是这样,请查看make
的输出(确保在详细模式下运行),以了解正在运行(失败)的构建命令make
与您直接发出的构建命令之间的区别。