1.程序的编译过程。
预处理->编译->汇编->链接
预处理:主要是处理源文件中的宏,比如#ifdef、 #include和#define命令。gcc -E test.c -o test.i,生成中间文件.i
编译:将中间文件.i生成汇编文件.s。GCC -S test.i -o test.s
汇编:将汇编文件.s生成机器语言.o。GCC -c test.s -o test.o
链接:生成最终的二进制代码文件。GCC test.o -o test
2.GCC的常用模式:编译模式和编译链接模式
将这个源文件直接编译成可执行程序,GCC -o test
只想让源文件生成目标文件,但不可执行,可以使用标记-c。GCC -c test.c
例子:
写一个hello.c
#include <stdio.h>
void main()
{
printf("hello\n");
}
gcc hello.c -o hello 生成一个hello的可执行文件
./hello,执行可以打印出hello
预处理->编译->汇编->链接
预处理:主要是处理源文件中的宏,比如#ifdef、 #include和#define命令。gcc -E test.c -o test.i,生成中间文件.i
编译:将中间文件.i生成汇编文件.s。GCC -S test.i -o test.s
汇编:将汇编文件.s生成机器语言.o。GCC -c test.s -o test.o
链接:生成最终的二进制代码文件。GCC test.o -o test
2.GCC的常用模式:编译模式和编译链接模式
将这个源文件直接编译成可执行程序,GCC -o test
只想让源文件生成目标文件,但不可执行,可以使用标记-c。GCC -c test.c
例子:
写一个hello.c
#include <stdio.h>
void main()
{
printf("hello\n");
}
gcc hello.c -o hello 生成一个hello的可执行文件
./hello,执行可以打印出hello