因此,我正在为一个不常见的目标打包并安装 gcc。默认情况下,所有文件(不包括文档)在其完整路径中都有目标名称。但是 libcc1.so.0.0.0 及其符号链接安装在 /usr/lib 中,(当然--prefix=/usr
)与本机编译器发生冲突。为了将它们安装到与目标相关的路径,我指定了,--libdir=/usr/lib/target_name
但文件安装到了 /usr/lib/lib。这是因为 libcc1/Makefile 指定了cc1libdir = $(libdir)/$(libsuffix)
,而 libcc1/configure 定义libsuffix
为../lib
(在我的情况下;在某些配置中也可能是这样的,以便即使具有默认值 ,../lib32
也可以将库安装到正确的位置)libdir
$PREFIX/lib
完整安装可能会影响更多文件,但我的目标不支持许多库,因此未安装。
我可以手动编辑目录 libcc1 中的 Makefile.am 或 Makefile.in(尚未测试)或使用--libdir=/usr/lib/target_name/dummy
(有效)来解决这个问题。但这两种方法似乎都不太好。前者每次更新时都需要手动操作(我是不是在不必要地担心?)。后者会创建令人困惑的深层路径(/usr/lib/target_name/dummy/gcc/target_name/version_number)。
有人能建议更好的解决方法,甚至更好的解决方案吗?