【C语言】gcc编译C语言程序的4个步骤

一、gcc编译器介绍

1.什么是编译器

        编辑器(如vi、记事本)是指我用它来写程序的(编辑代码),而我们写的代码语句,电脑是不懂的,我们需要把它转成电脑能懂的语句,编译器就是这样的转化工具。就是说,我们用编辑器编写程序,由编译器编译后才可以运行!

2.编译器作用

        编译器是将易于编写、阅读和维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。

3.gcc编译器

        gcc(GNU Compiler Collection,GNU 编译器套件),是由 GNU 开发的编程语言编译器。gcc原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,gcc同样适用于微软的Windows。

(gcc最初用于编译C语言,随着项目的发展gcc已经成为了能够编译C、C++、Java、Ada、fortran、Object C、Object C++、Go语言的编译器大家族)

4.gcc编译器命令

4.1命令格式:

gcc [-option1] ... <filename>

g++ [-option1] ... <filename>

  1. 命令、选项和源文件之间使用空格分隔
  2. 一行命令中可以有零个、一个或多个选项
  3. 文件名可以包含文件的绝对路径,也可以使用相对路径
  4. 如果命令中不包含输出可执行文件的文件名,可执行文件的文件名会自动生成一个默认名,Linux平台为a.out,Windows平台为a.exe

4.2gcc、g++编译常用选项说明:

选项

含义

-o file

指定生成的输出文件名为file

-E

只进行预处理

-S(大写)

只进行预处理和编译

-c(小写)

只进行预处理、编译和汇编

二、编译步骤

1.C代码编译成可执行程序经过4步:

  1. 预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法
  2. 编译:检查语法,将预处理后文件编译生成汇编文件
  3. 汇编:将汇编文件生成目标文件(二进制文件)
  4. 链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去

2.gcc编译过程

1)分步编译

预处理:gcc -E hello.c -o hello.i

编  译:gcc -S hello.i -o hello.s

汇  编:gcc -c hello.s -o hello.o

链  接:gcc    hello.o -o hello

选项

含义

-E

只进行预处理

-S(大写)

只进行预处理和编译

-c(小写)

只进行预处理、编译和汇编

-o file

指定生成的输出文件名为 file

文件后缀

含义

.c

C 语言文件

.i

预处理后的 C 语言文件

.s

编译后的汇编文件

.o

编译后的目标文件

2)一步编译

gcc hello.c -o demo(其实内部还有:预处理、编译、汇编、链接的过程)

3.演示过程:

3.1预处理:gcc -E hello.c -o hello.i

3.2编  译:gcc -S hello.i -o hello.s

3.3汇  编:gcc -c hello.s -o hello.o

 

3.4链  接:gcc    hello.o -o hello

3.5一步编译:gcc hello.c -o demo

三、总结

平常在项目中如果遇到某些bug找不到原因,不妨在这编译过程中去排查一下。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C语言中使用SQLite3,并使用GCC进行编译,您需要按照以下步骤操作: 1. 首先,确保您已经安装了SQLite3的开发库。您可以通过以下命令在Ubuntu上进行安装: ``` sudo apt-get install libsqlite3-dev ``` 2. 在C源代码文件中,包含SQLite3的头文件: ```c #include <sqlite3.h> ``` 3. 编写您的C代码,使用SQLite3 API进行数据库操作。例如,以下是一个简单的示例,打开数据库、创建表并插入数据: ```c #include <stdio.h> #include <sqlite3.h> int main() { sqlite3 *db; char *err_msg = 0; int rc = sqlite3_open("test.db", &db); if (rc != SQLITE_OK) { fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db)); return 1; } char *sql = "CREATE TABLE IF NOT EXISTS test_table (id INT, name TEXT);" "INSERT INTO test_table VALUES (1, 'John Doe');"; rc = sqlite3_exec(db, sql, 0, 0, &err_msg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL错误: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(db); return 1; } sqlite3_close(db); return 0; } ``` 4. 使用GCC编译您的代码。在终端中,使用以下命令: ``` gcc your_code.c -o output_file_name -lsqlite3 ``` 其中,`your_code.c` 是您的源代码文件名,`output_file_name` 是您想要生成的可执行文件名。 5. 运行生成的可执行文件: ``` ./output_file_name ``` 这将执行您的SQLite3代码并创建一个名为 "test.db" 的数据库文件,并在其中插入一条数据。 请注意,上述步骤是在Ubuntu上使用GCC编译器的示例。如果您在其他操作系统上使用不同的编译器,步骤可能会有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SecureCode

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值