在Linux系统中,编译源代码通常涉及几个不同的命令,每个命令都有其特定的用途和选项。以下是一些常用的编译命令及其区别:
-
gcc (GNU Compiler Collection):
- 用途:用于编译C和C++程序。
- 例子:
gcc -o hello hello.c
编译hello.c
源文件并生成hello
可执行文件。
-
g++:
- 用途:GNU编译器集合中用于编译C++程序的部分。
- 例子:
g++ -o hello hello.cpp
编译hello.cpp
源文件并生成hello
可执行文件。
-
clang:
- 用途:一个由LLVM项目开发的C、C++、Objective-C和Objective-C++编译器。
- 例子:
clang -o hello hello.c
使用Clang编译器编译hello.c
源文件。
-
make:
- 用途:一个构建自动化工具,用于从Makefile读取指令来编译程序。
- 例子:
make
根据当前目录下的Makefile来编译项目。
-
mm (用于Android源码):
- 用途:Android源码中的编译脚本,用于编译整个系统映像或特定的模块。
- 例子:
mm
编译整个Android系统。
-
mmm:
- 用途:在Android源码中,
mmm
通常用于编译多个模块或整个系统映像,与mm
类似,但可能有一些额外的选项或行为。 - 例子:
mmm modules/system/libc
编译指定的模块。 - 文件夹下面含有Android.mk的时候使用
- 用途:在Android源码中,