我最近开始做一些与 CC++ 相关的项目,但安装和编译器设置花费了太多时间。我在 Google 上搜索安装方法,但大家都告诉我关于 GCC 和 G++ 编译器 的信息。同时,我是 Mac 用户,所以默认的 Xcode 中带有 Clang 库,但我想具体使用 GCC 或 G++

如你所知,Jetbrains Clion IDE 不是免费的。因此,我们开发者主要依赖 VSCode。最后,我决定制作一个可以自动设置 C & C++ 编译器 的工具。

我知道 Mac 支持 Homebrew,而它可以做到这一点。所以,我开始开发一个名为 mac_script.sh 的脚本。


这个脚本并不复杂,我只是自动化了一些操作。让我与您分享这个脚本,以便了解它背后的工作原理。

C/C++ 编译器安装脚本

#!/bin/bash

# 检查命令是否存在
command_exists() {
  command -v "$1" >/dev/null 2>&1
}

# 显示帮助
show_help() {
  echo "用法: $0 [--help]"
  echo
  echo "此脚本在 macOS 上安装 Homebrew 和 GCC(如果尚未安装)。"
  echo "它还创建一个脚本来编译和运行 C/C++ 代码。"
  echo
  echo "选项:"
  echo "  --help    显示此帮助信息并退出"
}

# 检查 --help 参数
if [ "$1" == "--help" ]; then
  show_help
  exit 0
fi

# 检测操作系统
OS="$(uname -s)"

# 如果未安装 Homebrew,则在 macOS 上安装
if [ "$OS" == "Darwin" ]; then
  if ! command_exists brew; then
    echo "未找到 Homebrew. 正在安装 Homebrew..."
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  else
    echo "Homebrew 已安装。"
  fi

  # 如果未安装 GCC,则安装
  if ! command_exists gcc; then
    echo "未找到 GCC. 正在安装 GCC..."
    brew install gcc
  else
    echo "GCC 已安装。"
  fi

  # 创建一个编译和运行 C/C++ 代码的脚本
  cat << 'EOF' > compile_and_run.sh
#!/bin/bash

# 检查是否提供了文件
if [ -z "$1" ]; then
  echo "用法: $0 <源文件>"
  exit 1
fi

# 获取文件扩展名
EXT="${1##*.}"

# 根据文件扩展名编译和运行
if [ "$EXT" == "c" ]; then
  gcc "$1" -o "${1%.c}" && "./${1%.c}"
elif [ "$EXT" == "cpp" ]; then
  g++ "$1" -o "${1%.cpp}" && "./${1%.cpp}"
else
  echo "不支持的文件扩展名: $EXT"
  exit 1
fi
EOF

  # 使脚本可执行
  chmod +x mac_script.sh
  echo "编译和运行 C/C++ 代码的脚本已创建为 mac_script.sh"

  # 运行 compile_and_run.sh 脚本
  ./mac_script.sh <源文件>
else
  echo "此脚本旨在运行在 macOS 上。"
  exit 1
fi

让我告诉你如何运行这个脚本。


安装

要安装编译器,请在终端中运行以下命令:

sudo chmod +x mac_script.sh

这将下载编译器并安装到你的系统上。你可能需要输入密码来允许安装。

使用

一旦编译器安装完成,你可以使用它编译和运行程序。要编译程序,请运行以下命令:

sudo mac_script.sh program.c

sudo mac_script.sh program.cpp

就这样!!!

结论

运行脚本后,一切如预期般顺利。分享这个的原因并不仅仅是脚本。我的主要目的是告诉你,使用 shell 或 bash 脚本可以做到很多事情。试一次,你会享受其中。或者你可以为这个项目贡献代码,升级这个脚本,甚至为 Windows 和 Linux 制作相应的版本并添加更多功能。