我在这里有一个问题,那就是如何在不同的机器上使用新建的GLIBC。
我更改了malloc代码,并从以下位置编译了glibc的本地版本: /home/1/glibc/puzzlebox/
Configure:**/eglibc-2.15/configure --prefix=/home/1/glibc/puzzlebox/lib32/ --host=i686-linux-gnu --build=i686-linux-gnu CC="gcc -m32 -g -ggdb -DMALLOC_DEBUG=1 -U__i686" CXX="g++ -m32 -g -ggdb -DMALLOC_DEBUG=1 -U __i686" CFLAGS="-O2 -march=i686 -U_FORTIFY_SOURCE -fno-stack-protector" CXXFLAGS="-O2 -march=i686 -U_FORTIFY_SOURCE -fno-stack-protector"
Make and install**: make clean;make;make install由于我的前缀是/home/1/glibc/puzzlebox/lib32 32/,所以在/home/1/glibc/puzzlebox/lib32 32/下面创建了以下目录
bin等包括lib libexec sbin共享。
现在我将库文件/home/1/glibc//lib 32/lib/*复制到另一个存储库
并指出gcc使用/home/2/glibc/字谜盒/lib 32/lib/*文件中的库文件
但是在编译时,我会收到以下错误
ld: cannot find /home/1/glibc/puzzlebox/lib32/lib/libc.so.6 inside
ld: cannot find /home/1/glibc/puzzlebox/lib32/lib/libc_nonshared.a inside
ld: cannot find /home/1/glibc/puzzlebox/lib32/lib/ld-linux.so.2 inside
collect2: error: ld returned 1 exit status我正在/home/2存储库上编译/home/1/glibc/puzzlebox/lib32/lib/libc.so.6,但我的需要
这是因为静态链接吗?如何克服这一问题?我如何构建一个glibc,它可以在存储库之间使用,而无需在每个存储库中重新构建?而且我不想覆盖已经存在的glibc,所以我不得不使用前缀作为/usr
请建议!!提前谢谢!!
发布于 2017-03-01 03:11:43
这是因为静态链接吗?
不是的。最可能的原因是/home/2/glibc/puzzlebox/lib32/lib/libc.so (它是链接器脚本,即文本文件)中有/home/1/glibc/puzzlebox/lib32/lib/libc.so.6等。
您可以编辑该文件,但实际上不应该使用--prefix=/foo 编译GLIBC,除非您打算在上安装它。
https://stackoverflow.com/questions/42502606
复制相似问题