we choose to go to the moon!�|

上山砍大树

园龄:5年3个月粉丝:13关注:3

快速编译并执行csapp程序

现在要实现通过c file.c来执行两个过程:

# 1. 根据c文件名生成对应的输出文件
gcc -I/home/crx/study/csapp/code/include /home/crx/study/csapp/code/src/csapp.c file.c -o file
# 2. 执行输出文件
./file

通过chatgpt的方案是,使用脚本来根据输入文件名自动生成输出文件名。

  1. 创建compile-csapp.sh脚本

    vim ~/bin/compile-csapp.sh
  2. 编辑脚本文件

    #!/bin/bash
    # 检查是否提供了源文件作为参数
    if [ $# -eq 0 ]; then
    echo "Usage: c <source_file>"
    exit 1
    fi
    # 获取文件名,去掉扩展名 .c
    filename=$(basename "$1" .c)
    # 编译源文件并链接
    gcc -I/home/crx/study/csapp/code/include /home/crx/study/csapp/code/src/csapp.c "$1" -o "$filename"
    # 执行生成的可执行文件
    ./"$filename"
    • “#!”是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行。
  3. 放权限

    chmod +x ~/bin/compile-csapp.sh
  4. 确保~/binPATH

    为了让系统能够识别c命令并执行,需要确保~/bin目录在PATH 环境变量中。

    打开 ~/.bashrc 文件:

    vim ~/.bashrc

    将指令c与脚本compile-csapp.sh链接

    alias c="~/bin/compile-csapp.sh"
  5. 刷新./bashrc

    source ~/.bashrc

此时在/home/crx/study/csapp/code/ecf目录执行c fork.c

crx@ubuntu:ecf$ c fork.c
parent: x=0
child : x=2
crx@ubuntu:ecf$ c
Usage: c <source_file>

可以看到已经实现了我们想要的结果。

本文作者:上山砍大树

本文链接:https://www.cnblogs.com/shangshankandashu/p/18597880

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   上山砍大树  阅读(6)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起