cephes 数学库构建错误
cephes math library build error
我使用的是 64 位 Ubuntu 14.04。我尝试安装 cephes 库,但始终出现错误。它说:
`sqrtelf.387:8:错误:推送的指令后缀无效
我上网查了一下,也查了下这个论坛,大概是编译设置错误的问题。我编辑了 make 文件,现在看起来像这样:
CC = gcc
CFLAGS = -g -m32 -O2 -Wall -fno-builtin
LDFLAGS = -m32
AR = ar
RANLIB = ranlib
INCS = mconf.h
AS = as
还是不行。我也检查了mconf.h,但我什至不知道我应该改变什么。感谢您的帮助。
我得到了源文件here (double.zip)
错误说有问题的指令在文件 sqrtelf.387
的第 8 行。即
pushl %ebp
您很可能拥有 64 位工具链; pushl
在 64 位模式下不可用。但是,如果您不是并且想要 32 位版本,则可以将 --32
添加到 as
标志。
要解决这个问题,您应该在 makefile 中注释掉这个目标;理论上你可以取消注释 sqrtelf.amd64
target,但好处值得怀疑。在 makefile 中查找注释:
# Assembly language utilities.
# If the following are all commented out, the C versions
# will be used by default.
我使用的是 64 位 Ubuntu 14.04。我尝试安装 cephes 库,但始终出现错误。它说:
`sqrtelf.387:8:错误:推送的指令后缀无效
我上网查了一下,也查了下这个论坛,大概是编译设置错误的问题。我编辑了 make 文件,现在看起来像这样:
CC = gcc
CFLAGS = -g -m32 -O2 -Wall -fno-builtin
LDFLAGS = -m32
AR = ar
RANLIB = ranlib
INCS = mconf.h
AS = as
还是不行。我也检查了mconf.h,但我什至不知道我应该改变什么。感谢您的帮助。
我得到了源文件here (double.zip)
错误说有问题的指令在文件 sqrtelf.387
的第 8 行。即
pushl %ebp
您很可能拥有 64 位工具链; pushl
在 64 位模式下不可用。但是,如果您不是并且想要 32 位版本,则可以将 --32
添加到 as
标志。
要解决这个问题,您应该在 makefile 中注释掉这个目标;理论上你可以取消注释 sqrtelf.amd64
target,但好处值得怀疑。在 makefile 中查找注释:
# Assembly language utilities.
# If the following are all commented out, the C versions
# will be used by default.