我怎样才能修复ld而不是忽略糟糕的系统库以支持我的本地库?

时间:2017-03-09 16:11:51

标签: gcc ld

我正在尝试在我的红帽盒子上构建最新的gcc。我已根据要求下载并构建了最新的gmp,mpfr和mpc,并将它们安装在我的本地库中。从config.log文件中我得到以下内容。显然,mpfr的系统版本已损坏,我希望配置忽略它。我已将LIBRARY_PATHLD_LIBRARY_PATH设置为指向我的本地安装/ u / victor / lib。由于我正在运行配置脚本,因此尝试更改gcc的命令行选项是不合理的。我该如何解决这个问题?

gcc -o conftest -g -O2    conftest.c  -L/u/victor/lib -L/u/victor/lib -L/u/victor/lib -lmpc -lmpfr -lgmp >&5
/usr/bin/ld: warning: libmpfr.so.1, needed by /u/victor/lib/libmpc.so, may conflict with libmpfr.so.4
/usr/bin/ld: __gmpfr_cache_const_euler: TLS definition in /u/victor/lib/libmpfr.so section .tdata mismatches non-TLS definition in /usr/lib64/libmpfr.so.1 section .data

更令人困惑的是,当我编译conftest.c然后

gcc -o conftest conftest.o -lmpc -lmpfr -lgmp

使用导出LD_LIBRARY_PATH=/u/victor/lib,它会给出以下错误。我用nm检查了libmfpr.so,并且有三个“未定义”符号。

/u/victor/lib/libmpc.so: undefined reference to `mpfr_min_prec'
/u/victor/lib/libmpc.so: undefined reference to `mpfr_set_zero'
/u/victor/lib/libmpc.so: undefined reference to `mpfr_get_z_2exp'

0 个答案:

没有答案