好,多谢!
我刚才查了下gcc的头文件,有个发现:在 bits/math-finite.h 里面有这样的声明:
extern double __REDIRECT_NTH (exp, (double), __exp_finite);
__REDIRECT_NTH 在sys/cdefs.h 里面定义如下:
#if defined __GNUC__ && __GNUC__ >= 2
define __REDIRECT_NTH(name, proto, alias) name proto __asm__ (__ASMNAME (#alias)) __THROW
#endif
从名字上来看,好像是把exp重定义成了__exp_finite,不知道通过这里有没有其他一些解决的方法,比如undef __GNUC之类的。
不过 name proto __asm__ (__ASMNAME (#alias)) __THROW 这种写法展开来真是不好理解...
【 在 hgoldfish 的大作中提到: 】
: 如果你的优化只是编译器相关,不涉及到 glibc 的话,可以抛弃 glibc,改用 musl 静态
: 编译一下。
: 下载 musl,make && make install 以后,就生成 musl-gcc. 这是一个脚本,给 gcc 添加了额外的命令行。用这个编译器编译的程序,会把 glibc 依赖替换成 musl, 你可以给你的程序加上 -static 参数,或者不搞静态,把 musl 的 .so 一起复制过去就行了。
: ...................
--
FROM 116.4.11.*