我正在编写一些需要成为共享对象(.so)的代码。
我的构建机器上的libc可能比发布的机器新,因此我想静态链接它以避免兼容性问题。(我的程序使用memcpy,这显然是GLIBC_2.14的事情,而它可以低至2.5)。
同时使用-shared和-static编译无法工作,因为crtbeginT.o没有使用-fPIC进行编译。
编辑:这可能不是GCC linking libc static and some other library dynamically, revisited?的重复,因为那个问题谈论的是主elf静态链接libc,而这个问题是关于共享对象静态链接libc的。
我的构建机器上的libc可能比发布的机器新,因此我想静态链接它以避免兼容性问题。(我的程序使用memcpy,这显然是GLIBC_2.14的事情,而它可以低至2.5)。
同时使用-shared和-static编译无法工作,因为crtbeginT.o没有使用-fPIC进行编译。
编辑:这可能不是GCC linking libc static and some other library dynamically, revisited?的重复,因为那个问题谈论的是主elf静态链接libc,而这个问题是关于共享对象静态链接libc的。
memcpy
函数不是在2.14版本引入的;它自从最初的版本就存在于库中。 - davmac