Linux脚本- 将指定文件夹下的.c文件全部编译为.s文件

需求:将llvm-test-suite文件夹下的所有.c文件,编译为.s文件,存放到当前路径下。

以下是一个用于实现该功能的 Bash 脚本。

#!/bin/bash

# 设置搜索和包含路径
SEARCH_PATH="/home/majn/llvm_project/llvm-gcc-test/llvm-test-suite"
INCLUDE_PATHS="/home/majn/llvm_project/Header/include:/home/majn/llvm_project/Header/include/Sys:/home/majn/llvm_project/llvm-gcc-test/llvm-test-suite:/home/majn/llvm_project/Header/include/rev_standard"

# 指定编译器路径
COMPILER_PATH="/home/majn/llvm_project/Header/bin/gcc"

# 循环遍历目录下的所有 .c 文件
for f in $SEARCH_PATH/*.c; do
    # 初始化 INCLUDE_FLAGS
    INCLUDE_FLAGS=""

    # 循环添加多个 -I 选项
    OLD_IFS=$IFS
    IFS=":" # 设置内部字段分隔符为冒号
    for INCLUDE_PATH in $INCLUDE_PATHS; do
        INCLUDE_FLAGS+=" -I$INCLUDE_PATH "
    done
    IFS=$OLD_IFS

    # 执行编译命令
    "$COMPILER_PATH" -O0 $INCLUDE_FLAGS -ffunction-sections -fdata-sections -S "$f"
done

你可能感兴趣的:(Linux,linux)