![Linux静态编译问题](https://linux22.com/image/386/Linux%E9%9D%99%E6%80%81%E7%BC%96%E8%AF%91%E9%97%AE%E9%A2%98.png)
我正在将 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 的解决方案。从本质上讲,强烈建议不要使用静态库,因为如果/当错误被修复时,它们至少会强制重新链接。它们会消耗磁盘和内存空间,尤其是常用功能。