Ubuntu 12.04如何用C语言编程?

99ANYc3cd6
预计阅读时长 16 分钟
位置: 首页 C语言 正文

Ubuntu 12.04 已经是一个非常古老且不再受支持的操作系统,它已于 2025 年 4 月停止官方支持,这意味着:

ubuntu 12.04 c语言
(图片来源网络,侵删)
  1. 安全风险:它不会再接收任何安全更新,你的系统很容易受到攻击。
  2. 软件过时:系统自带的软件包版本非常老旧,无法满足现代开发需求。
  3. 兼容性问题:现代的编译器、库和工具可能无法在它上面正常安装或运行。

强烈建议如果你是为了学习或工作,请升级到一个现代的、仍在支持的 Ubuntu LTS 版本,Ubuntu 20.04 LTSUbuntu 22.04 LTS,这会让你获得更好的体验、更高的安全性和更丰富的软件资源。

如果你仍然需要在 Ubuntu 12.04 这个特定环境下进行 C 语言开发,下面是完整的指南。


第一步:安装必要的开发工具

在 Ubuntu 上,C 语言开发的核心工具链通常由 build-essential 这个元数据包提供,它会自动安装编译器 gccg++make 以及其他必要的头文件和库。

打开终端,执行以下命令:

ubuntu 12.04 c语言
(图片来源网络,侵删)
sudo apt-get update
sudo apt-get install build-essential
  • sudo apt-get update:更新软件包列表,确保你能获取到最新的(尽管是 12.04 的)“最新”软件。
  • sudo apt-get install build-essential:安装 C/C++ 编译器和构建工具。

安装完成后,你可以验证一下是否安装成功:

gcc --version

你应该能看到类似下面的输出(版本号会是 4.6.x 左右):

gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

第二步:编写你的第一个 C 程序 ("Hello, World!")

现在我们来创建一个简单的 C 程序。

  1. 创建源文件 使用你喜欢的文本编辑器,nanovim,这里我们用 nano,因为它对新手更友好。

    ubuntu 12.04 c语言
    (图片来源网络,侵删)
    nano hello.c
  2. 输入代码 在打开的编辑器中,输入以下代码:

    #include <stdio.h>
    int main() {
        printf("Hello, World!\n");
        return 0;
    }
    • #include <stdio.h>:包含了标准输入输出库,这样我们才能使用 printf 函数。
    • int main():这是 C 程序的入口点。
    • printf("Hello, World!\n");:在屏幕上打印 "Hello, World!"。\n 是一个换行符。
    • return 0;:表示程序正常结束。
  3. 保存并退出nano 中,按 Ctrl + X,然后按 Y 确认保存,最后按 Enter 键确认文件名。


第三步:编译和运行程序

C 语言是编译型语言,需要将源代码(.c 文件)转换成计算机可以执行的可执行文件(hello)。

  1. 编译 使用 gcc 编译器来编译 hello.c

    gcc hello.c -o hello
    • gcc:编译器命令。
    • hello.c:你的源文件。
    • -o hello:指定输出的可执行文件名为 hello,如果不写 -o,默认会生成一个名为 a.out 的文件。
  2. 运行 编译成功后,你会看到当前目录下多了一个名为 hello 的文件,现在运行它:

    ./hello
    • 表示在当前目录下执行这个文件。

    你应该能在终端看到输出:

    Hello, World!

第四步:使用调试器 GDB

当你的程序出现逻辑错误时,调试器就派上用场了,GDB (GNU Debugger) 是 Linux 下最常用的调试工具。

  1. 编译时加入调试信息 为了让 GDB 能够查看源代码和变量,在编译时需要加上 -g 选项。

    gcc -g hello.c -o hello_debug
  2. 启动 GDB

    gdb ./hello_debug

    你会进入 GDB 的交互式界面。

  3. 常用 GDB 命令(gdb) 提示符下,你可以输入以下命令:

    • list (或 l):列出源代码。
    • break main (或 b main):在 main 函数开头设置一个断点。
    • run (或 r):开始运行程序,程序会在断点处暂停。
    • next (或 n):执行下一行代码(不进入函数内部)。
    • step (或 s):执行下一行代码(如果遇到函数,会进入函数内部)。
    • print i (或 p i):打印变量 i 的值。
    • continue (或 c):继续运行程序,直到下一个断点或程序结束。
    • quit (或 q):退出 GDB。

第五步:使用 Makefile 进行项目管理

当你的项目变得复杂,有多个源文件时,每次手动编译就会变得很麻烦。Makefilemake 命令可以自动化这个过程。

  1. 创建项目结构 假设我们有两个文件:main.cutils.c

    • main.c:

      #include <stdio.h>
      #include "utils.h"
      int main() {
          int result = add(5, 3);
          printf("The result is: %d\n", result);
          return 0;
      }
    • utils.c:

      #include "utils.h"
      int add(int a, int b) {
          return a + b;
      }
    • utils.h (头文件):

      #ifndef UTILS_H
      #define UTILS_H
      int add(int a, int b);
      #endif
  2. 创建 Makefile 在项目根目录创建一个名为 Makefile 的文件(注意首字母大写)。

    # 定义变量
    CC = gcc
    CFLAGS = -Wall -g
    TARGET = my_program
    # 定义所有目标文件
    OBJS = main.o utils.o
    # 默认目标:当执行 make 时,默认会执行这个
    all: $(TARGET)
    # 链接规则:如何生成最终的可执行文件
    $(TARGET): $(OBJS)
        $(CC) $(CFLAGS) -o $@ $^
    # 编译规则:如何从 .c 文件生成 .o 文件
    %.o: %.c
        $(CC) $(CFLAGS) -c -o $@ $<
    # 清理规则:删除所有生成的文件
    clean:
        rm -f $(TARGET) $(OBJS)
    # .PHONY 表示这是一个伪目标,不生成文件
    .PHONY: all clean
    • CC = gcc:指定编译器。
    • CFLAGS = -Wall -g:编译选项,-Wall 显示所有警告,-g 包含调试信息。
    • TARGET = my_program:最终的可执行文件名。
    • OBJS = main.o utils.o:所有中间的目标文件(.o 文件)。
    • all: $(TARGET)all 是一个伪目标,它依赖于 $(TARGET)
    • $(TARGET): $(OBJS):这是链接规则,告诉 make 如何将目标文件链接成最终程序。
    • %.o: %.c:这是一个模式规则,告诉 make 如何从任何 .c 文件生成对应的 .o 文件。
    • clean::清理命令,用于删除所有生成的文件。
    • .PHONY: all clean:声明 allclean 是伪目标。
  3. 使用 make 在终端中,只需输入 make

    make

    make 会读取 Makefile 并自动执行必要的编译和链接步骤,如果再次运行 make,它会发现文件没有变化,提示 `my_program' is up to date.

    要清理项目,运行:

    make clean

总结与重要提醒

步骤 命令 说明
安装工具 sudo apt-get install build-essential 安装 GCC, G++, make 等核心工具。
编译 gcc hello.c -o hello hello.c 编译为可执行文件 hello
运行 ./hello 执行当前目录下的 hello 程序。
调试 gcc -g hello.c -o hello
gdb ./hello
编译时加入调试信息,然后用 GDB 进行调试。
项目管理 创建 Makefile
make
make clean
使用 Makefile 自动化多文件项目的编译和清理。

再次强调:Ubuntu 12.04 是一个过时的环境,如果你有机会,请务必迁移到现代的 Ubuntu 版本,在那里,你可以使用更新、更安全的工具链,GCC 9/11/12,以及更先进的构建系统如 CMake。

-- 展开阅读全文 --
头像
织梦description字数限制是多少?
« 上一篇 2025-12-18
dedetagparse,织梦模板标签解析原理是什么?
下一篇 » 2025-12-18

相关文章

取消
微信二维码
支付宝二维码

目录[+]