安装GCC时,库、头文件和一些可执行文件被放置在类似于/usr/lib/gcc/i686-pc-linux-gnu/4.5.4/
和 的目录中/usr/libexec/gcc/i686-pc-linux-gnu/4.5.4/
。
我正在自定义系统上构建本机编译器,并希望将可执行文件放入/bin
,头文件放入/include/gcc
以及其他任何内容/lib/gcc
(不包含目标计算机名称或 gcc 版本的路径)。不幸的是,考虑到 gcc 配置脚本的可用选项,这似乎是不可能的。简单地重新定位所有已安装的文件是没有问题的,但是 gcc 可执行文件将无法再找到这些文件。搜索目录在我的系统上如下所示(在我看来非常丑陋,有很多无用的路径):
$ gcc -print-search-dirs
install: /usr/lib/gcc/i686-pc-linux-gnu/4.5.4/
programs: =/usr/libexec/gcc/i686-pc-linux-gnu/4.5.4/:/usr/libexec/gcc/i686-pc-linux-gnu/4.5.4/:/usr/libexec/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.4/:/usr/lib/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.4/../../../../i686-pc-linux-gnu/bin/i686-pc-linux-gnu/4.5.4/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.4/../../../../i686-pc-linux-gnu/bin/
libraries: =/usr/lib/gcc/i686-pc-linux-gnu/4.5.4/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.4/../../../../i686-pc-linux-gnu/lib/i686-pc-linux-gnu/4.5.4/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.4/../../../../i686-pc-linux-gnu/lib/../lib/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.4/../../../i686-pc-linux-gnu/4.5.4/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.4/../../../../lib/:/lib/i686-pc-linux-gnu/4.5.4/:/lib/../lib/:/usr/lib/i686-pc-linux-gnu/4.5.4/:/usr/lib/../lib/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.4/../../../../i686-pc-linux-gnu/lib/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.4/../../../:/lib/:/usr/lib/
我已经查看了 gcc 的源代码,但对我来说,为了实现我想要的目标,似乎必须进行很多更改;这些路径的结构实际上是硬编码的。在配置之前操作DEFAULT_TARGET_MACHINE
或就可以了,但这肯定会破坏其他事情。DEFAULT_TARGET_VERSION
gcc/Makefile.in
任何帮助/想法表示赞赏。
答案1
尝试 ./configure 脚本的这些选项:
--prefix=
--exec-prefix=
--bindir=
--libdir=
--libexecdir=
--with-slibdir=