Linux静态编译问题

Linux静态编译问题

我正在将 testdisk 构建为静态并运行

使静态

它返回以下错误

/usr/bin/ld: 找不到 -luuid

Collect2: ld 返回 1 退出状态

有什么问题?

在 makefile 中我有以下行

LIBS = -lz -lntfs -luuid -lcrypto -lext2fs -lcom_err

我在所有流动的标志上都收到错误

-luuid -lcrypto -lext2fs -lcom_err

答案1

libuuid-devel 的 RPM 包Fedora 13 似乎只包含共享库。因此你必须构建它从源头如果您需要静态库。

我预计这对于静态-lcrypto和其他问题来说是同样的问题。

然而,如果是测试盘特别是当您尝试编译时,您可能不必费心,因为分区修复实用程序是大多数 LiveCD 发行版(包括 Fedora)的一部分。

答案2

基本原理由下式给出Red Hat 错误报告 596898 的解决方案。从本质上讲,强烈建议不要使用静态库,因为如果/当错误被修复时,它们至少会强制重新链接。它们会消耗磁盘和内存空间,尤其是常用功能。

相关内容