标题为binutils
包含在Centos Linux的gcc
中?
如果我安装gcc rpm包,是否还需要安装binutils
?
更重要的是,gcc
和g++
默认安装在Centos中吗?
答案 0 :(得分:5)
gcc
包可能包含适当的编译器,例如文件/usr/bin/gcc
和目录/usr/lib/gcc/x86_64-linux-gnu/4.8/
(包含cc1
可执行文件)。
/usr/bin/gcc
程序启动cc1
(或cc1plus
等...)来编译您的源代码*.c
,还as
来翻译{{ 1}} - 生成的汇编代码(由cc1
生成)到目标文件cc1
中,最后*.o
生成链接。
使用ld
编译一次以了解正在发生的事情,它将显示真正执行的二进制文件。请注意,gcc -v
只是一个驱动程序(启动其他可执行文件,如gcc
,cc1
,as
...)
ld
和as
程序由ld
提供 - 这是编译所需的。
因此binutils
包是binutils
包的必需依赖项(包含许多其他依赖项,可能包括gcc
和libc
,但是如果你真的想要你可以使用其他 libc ,例如MUSL libc; libc 通常提供dynamic linker,如libc-devel
。
了解如何使用rpm(在Centos或Ubuntu& Debian上的/lib/ld-linux.so*
)查询packages之间的依赖关系。
对于开发,您可能需要其他一些软件包。 Debian有build-essential个虚拟包。可能CentOS有一个等价物。并且您肯定希望使用一些库(并且您希望使用开发包,例如在Debian libcurl4-gnutls-dev上使用libcurl HTTP客户端库进行开发)。另请参阅this answer(对于Ubuntu和Debian,但您可以根据CentOS进行调整)。