提问人:Stryker2k2 提问时间:10/26/2021 更新时间:10/27/2021 访问量:548
如何编译 glibc(32 位和 64 位)?
How to you compile glibc (32-bit and 64-bit)?
问:
现在,我的项目中有一个开源依赖库(mylib.a文件)的修改版本,因此我通过gcc命令对其进行了静态链接。我收到错误...
"statically linked applications require at runtime the shared libraries from the glibc version used for linking"
我的翻译:我的静态依赖库不能动态使用 glibc;它还必须被编译和动态链接。因此,我正在尝试编译和静态链接 glibc。
我收集到它们需要编译,将 *.a 库放置在项目的文件夹中,为包含标头添加“-I//location//”,并为库本身添加“-L//location//”。
但是,对于问题本身......
如何编译 glibc(32 位和 64 位)?
通过开源研究,我找到了这个链接,并且克隆了存储库,但我找不到任何关于如何实际编译它的文档。
git clone git://sourceware.org/git/glibc.git
欢迎任何想法或建议。
答:
我的翻译:我的静态依赖库不能动态使用 glibc;它还必须被编译和动态链接。因此,我正在尝试编译和静态链接 glibc。
正如 n.m. 指出的那样,你的翻译是错误的。
您正在尝试链接一个完全静态的可执行文件,并且 GLIBC 警告您,此类可执行文件将无法在任何安装了不同版本的 GLIBC 的计算机上正确运行。
与其尝试构建一个完全静态的可执行文件,不如构建它,使其使用(您仍然可以链接到这样的可执行文件)。libc.so.6
mylib.a
如果您添加到链接的原因是您同时拥有 和 ,并且想链接前者而不是后者,请阅读此答案。-static
libmylib.a
libmylib.so
评论
-static