关于 M1 Mac 中 CLion 添加头文件情况下仍无法调用 __gcd 函数的解决办法

一、问题描述

近期在学习 C++ 的过程中发现,正常调用 __gcd 函数(最大公因数函数),CLion 报错无法调用。

代码:

1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <algorithm>

using namespace std;

int main() {
int a, b;
cin >> a >> b;
cout << __gcd(a, b);
return 0;
}

错误如下:

error: use of undeclared identifier ‘__gcd’

二、问题处理

尝试各种方式后,最终发现是编译器的问题,在此记录处理过程,有相同问题的同学可以参考。

(一)系统及软件版本

系统:macOS Ventura 13.2

软件:CLion 2022.3.2

(二)解决流程

之前在安装 CLion 时我直接按照 CLion 的提示安装了 Command Line Tools ,并直接使用了 CLion 的默认编译器配置,这样就有可能导致编译过程中出现错误,需要重新配一下环境。

  1. 打开终端,确认Command Line Tools是否安装成功。
1
Xcode-select -install
  1. 利用 Homebrew 安装 gcc
1
brew install gcc

​ 注:安装 gcc 编译器时可能出现问题,解决方法可参照 gcc 安装教程

  1. 利用 Homebrew 安装 cmake
1
brew install cmake
  1. 重新配置 CLion

进入 CLion 设置 -- 构建、执行、部署 -- 工具链 修改构建工具、 C 编译器以及 C++ 编译器,如下:

  • 原配置:

CLion原配置

  • 修改为:

CLion配置修改

注1:可能版本有点区别,只要在文件中选取 ctest 、 gcc-xx 、 g+±xx 即可;

注2:如果点开文件后找不到文件夹,按下 commond + shift + . 即可显示隐藏文件夹,选好后再按一次即可隐藏

  1. 重启一下 CLion 即可调用 __gcc 函数