我想构建一个非常小的GCC子集(4.9),基本上我只需要C编译器(静态链接的二进制文件就完美了)。整个GCC构建系统似乎非常复杂,并且没有关于最小构建的文档。我花了一个多小时阅读有关配置和构建GCC的文档,但我对我的结果不满意。
我到目前为止的./configure
选项如下:
--enable-languages=c
--disable-bootstrap
--disable-multilib
--disable-nls
在构建和安装之后,我仍然在目录/usr/local/share/locale
中看到大量文件,所以我不知道--disable-nls
是什么。我还想知道目录/usr/local/lib/gcc/*/[gcc-version]
的内容,它真的需要吗?
感谢任何帮助。
答案 0 :(得分:2)
根据documentation,--disable-nls
确实是禁用本地化的正确开关:
--enable-nls
选项启用本地语言支持(NLS),它允许GCC以美国英语以外的语言输出诊断。如果不执行加拿大交叉构建,则默认启用本机语言支持。--disable-nls
选项会禁用NLS。
该选项可能会被破坏。您可以删除/usr/local/share/locale
的内容,如果它只是来自GCC!请仔细检查!您可能不想删除其他程序的本地化(当然,除非您不关心它们)。
/usr/local/lib/gcc/*/[gcc-version]
中的文件非常非常重要!它们包含内部文件,例如实际的编译器cc1
和链接器帮助器collect2
。你还会发现一些头文件的“固定”版本会覆盖系统头文件(这些是GCC认为以某种方式破坏并且修复它的头文件;有时候这些“修复”实际上可能会影响到你的方式,但通常你不想弄乱这些文件。)