Linux下GCC编程指南,让你快速掌握编译器使用技巧 (在linux下gcc编程)
GCC是GNU Compiler Collection的缩写,是自由软件基金会(FSF)开发的C语言编译器。它能够编译多种编程语言,如C、C++、Objective-C、Fortran、Ada等等。GCC编译器可在多种平台上工作,包括Windows、macOS和Linux等。它具有跨平台、自由开源、高度可移植的特点,成为C语言开发者的重要工具。
本文将从以下几个方面介绍GCC编译器的使用技巧:
1.安装GCC编译器
在Linux系统中,GCC编译器通常已经自带了,如果没有的话可以使用以下命令进行安装:
$ sudo apt-get install gcc
2.编译和运行简单的C程序
下面是一个简单的C程序:
#include
int mn() {
printf(“Hello, World!\n”);
return 0;
}
保存为hello.c文件,使用以下命令进行编译:
$ gcc hello.c -o hello
其中,-o参数指定输出文件名为“hello”,默认情况下输出文件名为“a.out”。
使用以下命令运行程序:
$ ./hello
程序输出以下内容:
Hello, World!
3.编译和运行包含多个源文件的项目
在实际项目中,通常需要编译和运行包含多个源文件的程序。以下是一个包含两个源文件的程序:
源文件1:hello.c
#include
void print_hello() {
printf(“Hello, “);
}
源文件2:world.c
#include
void print_world() {
printf(“World!\n”);
}
源文件3:mn.c
#include
extern void print_hello();
extern void print_world();
int mn() {
print_hello();
print_world();
return 0;
}
使用以下命令进行编译:
$ gcc hello.c world.c mn.c -o hello
其中,-o参数指定输出文件名为“hello”,默认情况下输出文件名为“a.out”。
使用以下命令运行程序:
$ ./hello
程序输出以下内容:
Hello, World!
4.使用Makefile进行自动化编译
使用Makefile可以实现自动化编译,以便于处理包含多个源文件的程序。以下是一个Makefile的示例:
CC=gcc
CFLAGS=-I.
hello: hello.o world.o mn.o
$(CC) -o hello hello.o world.o mn.o
hello.o: hello.c
$(CC) -c -o hello.o hello.c $(CFLAGS)
world.o: world.c
$(CC) -c -o world.o world.c $(CFLAGS)
mn.o: mn.c
$(CC) -c -o mn.o mn.c $(CFLAGS)
clean:
rm -f *.o hello
其中,CC定义编译器为GCC,CFLAGS定义编译选项为-I,指定头文件路径为当前目录。
make命令自动执行Makefile,进行编译:
$ make
使用以下命令运行程序:
$ ./hello
程序输出以下内容:
Hello, World!
5.调试程序
使用调试工具可以帮助我们查找程序中的错误。GCC编译器自带了GDB调试工具。以下是一个使用GDB调试程序的示例:
需要在程序中添加调试选项:
源文件1:hello.c
#include
int mn() {
printf(“Hello, World!\n”);
return 0;
}
在编译时使用-g选项添加调试信息:
$ gcc -g hello.c -o hello
使用以下命令启动GDB调试器:
$ gdb hello
使用以下命令运行程序:
(gdb) run
程序输出以下内容:
Hello, World!
可以使用以下命令断点调试:
(gdb) break mn
(gdb) run
使用以下命令单步跟踪程序:
(gdb) step
使用以下命令显示变量的值:
(gdb) print variable
使用以下命令退出GDB调试器:
(gdb) quit