十分钟在 macOS 快速搭建 Linux C/C++ 开发环境

这篇具有很好参考价值的文章主要介绍了十分钟在 macOS 快速搭建 Linux C/C++ 开发环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有一个使用了 Epoll 的 C 项目,笔者平时用的 Linux 主力开发机不在身边,想在 macOS 上开发调试,但是没有 Linux 虚拟机。恰好,JetBrains CLion 的 Toolchains 配置除了使用本地环境,还支持 SSH、Docker。

笔者使用 CLion + Docker Desktop,不到十分钟就能在 macOS 上搭建一个能够开发使用 Linux 类库的 C 项目的开发环境,而且具备不错的开发体验。

准备 Docker 环境

macOS 使用 Docker Desktop 即可,本文不赘述。
当然,Docker 环境也可以不在本地,可以通过 TCP 或者 SSH 连接非本地 Docker 环境。

十分钟在 macOS 快速搭建 Linux C/C++ 开发环境

构建一个包含项目所需依赖的 Image

准备 Dockerfile 并安装所需依赖

笔者的主力开发机是 Ubuntu 22.04,选择相同的系统作为基础镜像。
镜像构建按照项目所需依赖即可。以下是搭建一个最基本的 C/C++ 环境的 Dockerfile。

FROM ubuntu:22.04
MAINTAINER wuweijie@apache.org
RUN apt update && apt install -y cmake g++ gdb

提示:如果所在环境无法加速访问 Ubuntu 官方 apt 源,建议使用国内 apt 源。

将 sources.list 覆盖基础镜像中原有的 sources.list。

FROM ubuntu:22.04
MAINTAINER wuweijie@apache.org
ARG TARGETARCH
COPY $TARGETARCH/sources.list /etc/apt/sources.list
RUN apt update && apt install -y cmake g++ gdb

构建 x86/64 架构的环境可以使用以下 sources.list

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

构建 aarch64 及其他架构的环境可以使用以下 sources.list

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse

构建 Image

>>> docker build -t teslacn/cmake:1.0 .
[+] Building 16.4s (8/8) FINISHED                                            
 => [internal] load build definition from Dockerfile                    0.0s
 => => transferring dockerfile: 37B                                     0.0s
 => [internal] load .dockerignore                                       0.0s
 => => transferring context: 2B                                         0.0s
 => [internal] load metadata for docker.io/library/ubuntu:22.04        16.3s
 => [1/3] FROM docker.io/library/ubuntu:22.04@sha256:f154feaf13b51d16e  0.0s
 => [internal] load build context                                       0.0s
 => => transferring context: 65B                                        0.0s
 => CACHED [2/3] COPY arm64/sources.list /etc/apt/sources.list          0.0s
 => CACHED [3/3] RUN apt update && apt install -y cmake g++ gdb         0.0s
 => exporting to image                                                  0.0s
 => => exporting layers                                                 0.0s
 => => writing image sha256:b4ad8d6c3284e79dedcf8c628b1a89c0bb59d29000  0.0s
 => => naming to docker.io/teslacn/cmake:1.0                            0.0s

CLion 配置 Toolchains

Toolchains 添加 Docker 环境

选择构建好的镜像即可,CLion 会自动检测构建工具、编译器、GDB 版本。
十分钟在 macOS 快速搭建 Linux C/C++ 开发环境

CMake 项目选择刚才添加的 Docker Toolchain

十分钟在 macOS 快速搭建 Linux C/C++ 开发环境

开发体验

头文件导航

CLion 自动将容器中的 Linux 头文件缓存在了本地,从代码中能够直接导航到 sys/epoll.h 文件,使用起来和直接在 Linux 环境开发没有区别。
十分钟在 macOS 快速搭建 Linux C/C++ 开发环境

直接运行

与平时本地运行相比完全没有差异。
十分钟在 macOS 快速搭建 Linux C/C++ 开发环境

调试运行

调试运行发现,除了程序的日志没有打出到 stdout 以外,其他调试功能和本地调试完全没有差异。

十分钟在 macOS 快速搭建 Linux C/C++ 开发环境

十分钟在 macOS 快速搭建 Linux C/C++ 开发环境

以上即环境搭建的过程与结果。

【更新】CLion Debug 控制台没有日志

解决方法:

setbuf(stdout, 0);

https://stackoverflow.com/questions/47776094/clion-wont-show-output-in-debug文章来源地址https://www.toymoban.com/news/detail-481762.html

到了这里,关于十分钟在 macOS 快速搭建 Linux C/C++ 开发环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 纯小白也能看懂,十分钟帮你快速了解云原生概念

    随着云原生相关技术的蓬勃发展,不管你是刚入职的小白,还是多年经验的老手,都在关注这种技术趋势。但相关内容太多,导致一些小白无从入手,也没有一个全局的概念。那就花10分钟看完本文,帮你快速了解云原生的起源和发展,并介绍一些技术现状 📕作者简介:战斧

    2024年02月14日
    浏览(36)
  • C++单元测试GoogleTest和GoogleMock十分钟快速上手(gtest&gmock)

    下载 安装 重要文件 googletest gtest/gtest.h libgtest.a libgtest_main.a 当不想写 main 函数的时候,可以直接引入 libgtest_main.a; 否则 googlemock gmock/gmock.h libgmock.a libgmock_main.a 一 .断言 gtest 中的断言分成两大类: ASSERT_* 系列:如果检测失败就直接退出 当前函数 EXPECT_* 系列:如果检测失败

    2024年02月06日
    浏览(28)
  • 十分钟教你搭建类似ChatGPT的安卓应用程序

    大家好,我是易安! Chat GPT 是当今著名的人工智能工具,就像聊天机器人一样。Chat GPT会回答发送给它的所有查询。今天,我将通过集成 OpenAI API (ChatGPT)构建一个简单的类似 ChatGPT 的 android 应用程序,我们可以在其中提出任何问题并获得答案。 如何使 ChatGPT 像 Android 应用程序

    2024年02月04日
    浏览(43)
  • Alist安装教程,十分钟搭建一个属于自己的网盘系统

    不想看文档的的,可以看bilibili上的视频教程:网盘这样用,也太爽了!- 神器 AList 详细使用教程 | 网盘整合、在线播放、WebDAV_哔哩哔哩_bilibili 官网地址:https://alist.nn.ci/ AList是一个支持多种存储,支持网页浏览和 WebDAV 的文件列表程序,由 gin 和 Solidjs 驱动。简单的来说就是

    2024年02月04日
    浏览(39)
  • 【小白教程】十分钟搭建Stable Diffusion WebUI,白嫖三个月

    Stable Diffusion 是一款功能异常强大的AI图片生成器。它支持文字生成图片,图片转图片,使用各种各样的模型来达到你想要的效果,还能训练你自己的专属模型。 简单来说,即使你没有绘画功底,只要文笔叙说的够详细准确也可以画出自己想要的图片,甚至超乎你的想象。 当

    2024年02月15日
    浏览(27)
  • 十分钟,零基础使用uniCloud完成后端管理系统搭建二

    上一节我们已经成功搭建基础版的后端管理系统,这一节我们将利用uniCloud给我们提供的schema2code自动生成代码,快速完成:列表、增加和修改页面创建。 uniCloud系列文章: Dcloud开发者注册,uniCloud服务空间创建。 十分钟,零基础使用uniCloud完成后端管理系统搭建一 十分钟,

    2024年02月08日
    浏览(56)
  • 【Microsoft Azure 的1024种玩法】三十三.十分钟快速部署 Azure Kubernetes Service 群集

    Azure Kubernetes 服务 (AKS) 通过将操作开销卸载到 Azure,简化了在 Azure 中部署托管 Kubernetes 群集的过程。 作为一个托管的 Kubernetes 服务,Azure 可以自动处理运行状况监视和维护等关键任务,本篇文章要分享的内容是如何在Azure中使用十分钟快速部署 Azure Kubernetes Service 群集 【Mi

    2024年02月05日
    浏览(31)
  • 【Microsoft Azure 的1024种玩法】五十四. 十分钟快速上手创建部署Azure speech服务

    Azure语音服务是Microsoft提供稳定可靠的云通信服务,其在单个 Azure 订阅中统合了语音转文本、文本转语音以及语音翻译功能,我们可以通过各种方式(语音 CLI、语音 SDK、Speech Studio )来实现语音转文本、文本转语音等功能,本篇文档主要介绍了如何快速上手创建部署Azure sp

    2024年02月12日
    浏览(29)
  • 十分钟带汝入门大数据开发语言Scala

    大家好,我是百思不得小赵。 创作时间:2022 年 6 月 7 日 博客主页: 🔍点此进入博客主页 —— 新时代的农民工 🙊 —— 换一种思维逻辑去看待这个世界 👀 今天是加入CSDN的第1193天。觉得有帮助麻烦👏点赞、🍀评论、❤️收藏 Scala是一门多范式的编程语言,一种类似Ja

    2024年02月02日
    浏览(43)
  • Grafana技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》

    阿丹: Prometheus技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》_一单成的博客-CSDN博客         在正确安装了Prometheus之后开始使用并安装Grafana作为Prometheus的仪表盘。 搜索可拉取版本  拉取镜像       访问{ip}:3000 即可,使用账号密码 admin/admin进行登录即可 请按照

    2024年02月14日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包