Mac 刷题环境配置

devtools/2025/1/23 8:13:16/

Mac 刷题环境配置

这篇博文主要记录自己为了更方便的在 Mac 上写算法题,主要是基于 Clion做的一些环境配置;有些操作其实在 Windows ,Linux 下也是通用的,如果看到的小伙伴也可以结合自己的情况参考。

Clion 插件

推荐一下这个插件 C/C++ Single File Execution

image-20250119204634110

因为刷算法题主要是单文件执行,这个可以帮我们自动在 Cmake 里生成一个命令,进而创建一个可以独立执行的可执行文件。具体如图:

image-20250119204845319

CMakeLists.txt

image-20250119204940700

使用 Cmake 整理输出目录

如果我们使用了上一步,得到的可执行文件和 源代码cpp 文件是在同一目录下的,其实不太优雅:

image-20250119205219257

可以在 Cmake 里面添加这几行代码:

# 设置可执行文件的输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# 设置调试符号文件的输出目录(可选,macOS 上会影响 .dSYM)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)

这样得到的目录结构大致是这样:

image-20250119205407430

可以看到相关的 Debug 文件,还有可执行文件都整理到了调试目录,层次更加分明了。

万能头文件路径

刷题的小伙伴一定都对#include "bits/stdc++.h"这个头文件不陌生,主要是为了方便库的导入;

我一开始加在了

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include

这个目录下,其实一开始是可以的,但是如果Xcode进行了版本的更新,这个目录会被覆盖,进而导致原先的头文件丢失。

另外我尝试过加在/usr/local/include下,发现clion里面还是识别不到。

最终的结果是加在 /Library/Developer/CommandLineTools/usr/include目录下,这样即使系统更新也不会被覆盖。

主要总结了3点操作,以供参考。


http://www.ppmy.cn/devtools/152825.html

相关文章

Java 的对象序列化与反序列化

目录 一、什么是对象序列化与反序列化 二、为何需要对象序列化与反序列化 三、Java 中如何实现对象序列化与反序列化 1. 简单对象的序列化与反序列化 2. 处理静态成员与瞬态成员 四、自定义序列化与反序列化逻辑 五、对象序列化与反序列化的注意事项 六、总结 在 Java …

人形机器人将制造iPhone!

前言 优必选机器人和富士康通过一项突破性的合作伙伴关系,正在将先进的人形机器人(如Walker S1及其升级版Walker S2)整合到制造流程中,以改变iPhone的生产方式。这一合作旨在通过提升机器人能力、优化工作流程以及实现更智能的自动…

Elasticsearch 8.17.1 JAVA工具类

一、ElasticSearchUtils package com.wssnail.elasticsearch.util;import co.elastic.clients.elasticsearch.ElasticsearchClient; import co.elastic.clients.elasticsearch._types.FieldValue; import co.elastic.clients.elasticsearch._types.Refresh; import co.elasti…

cf<contest/1971>练习-python版

https://codeforces.com/contest/1971 前5题python题解(cf翻译代码符号可能变中文) 1.My First Sorting Problem 题面翻译 有 t t t 组数据,每组数据给你两个整数 x x x 和 y y y 。 输出两个整数: x x x 和 y y y 中较小…

【前端动效】HTML + CSS 实现打字机效果

目录 1. 效果展示 2. 思路分析 2.1 难点 2.2 实现思路 3. 代码实现 3.1 html部分 3.2 css部分 3.3 完整代码 4. 总结 1. 效果展示 如图所示,这次带来的是一个有趣的“擦除”效果,也可以叫做打字机效果,其中一段文本从左到右逐渐从…

Azure面试

文章目录 项目地址一、Azure Storage1. What are the benefits of Azure Storage? 二、汇总 项目地址 教程作者:教程地址: 代码仓库地址: 所用到的框架和插件: dbt airflow一、Azure Storage 1. What are the bene…

窗口栏组件

在Qt中,窗口的布局可以由多个常用的部件组成。你提供的代码涉及了菜单栏、工具栏、状态栏、中心部件和铆接部件(即停靠窗口)。下面是每个部件的详细解析: 1. 菜单栏 (QMenuBar) Qt中的菜单栏用来创建应用程序的顶部菜单&#xf…

高水平EI会议-第四届机器学习、云计算与智能挖掘国际会议

一、会议信息 大会名称:第四届机器学习、云计算与智能挖掘国际会议(MLCCIM 2025) 会议地点:中国漠河 会议时间:2025年7月21-25日 截稿日期:2025年5月10日 支持单位:佛山市人工智能学会、佛…