繁体   English   中英

如何编译 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 位)?

通过开源研究,我找到了这个链接,我克隆了这个 repo,但我找不到任何关于如何实际编译它的文档。

git clone git://sourceware.org/git/glibc.git

欢迎任何想法或建议。

我的翻译:我的静态依赖库不能动态使用glibc; 它也必须被编译和动态链接。 因此,我正在尝试编译和静态链接 glibc。

正如 nm 指出的那样,您的翻译是错误的。

您正在尝试链接一个完全静态的可执行文件,而 GLIBC 警告您此类可执行文件将无法在安装了不同版本 GLIBC 的任何机器上正确运行。

不要尝试构建完全静态的可执行文件,而是构建它以使用libc.so.6 (您仍然可以将mylib.a链接到此类可执行文件)。

如果您在链接中添加-static的原因是您同时拥有libmylib.alibmylib.so ,并且希望链接前者而不是后者,请阅读此答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM