电脑是M1芯片的,使用CLion来编译运行c++文件。
无论采用CMake还是g++,都一直报相同的错误:
/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/cstdlib:135:9: error: no member named 'at_quick_exit' in the global namespace
using ::at_quick_exit _LIBCPP_USING_IF_EXISTS;
尝试了各种解决办法,包括:
升级操作系统 - 无效
重装CLion - 无效
最终问了一下gpt,得到答复:
执行之后又报错:
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
解决方案
到
https://developer.apple.com/download/all/?q=command
这个网址,安装最新的Command Line Tools for Xcode,如下图所示:
之后就可以正常使用CLion了。
tip
如果Command_Line与当前操作系统不匹配,那就先把操作系统升级到最新版本,然后再重新安装即可。
附(CLion使用cmake编译)
新建项目
配置CMakeLists.txt
cmake_minimum_required(VERSION 3.24)
project(AlgorithmPro)
# 设定 C++17 标准
set(CMAKE_CXX_STANDARD 17) # 将 C++ 标准设置为 C++17
set(CMAKE_CXX_STANDARD_REQUIRED ON) # C++17 是强制要求,不会衰退至低版本
# 设定构建运行路径,避免污染根目录
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/.archive)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/.library)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/.runtime)
set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/.path)
# 遍历项目根目录下所有的 .cpp 文件,自动添加
file(GLOB_RECURSE files *.cpp **/*.cpp)
foreach(file ${files})
get_filename_component(name ${file} NAME)
add_executable(${name} ${file})
message(${name})
message(${file})
endforeach()
编写.cpp文件
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
构建Cmake
运行c++可执行文件