十分钟在 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日
    浏览(57)
  • 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日
    浏览(5)
  • 十分钟教你搭建类似ChatGPT的安卓应用程序

    十分钟教你搭建类似ChatGPT的安卓应用程序

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

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

    Alist安装教程,十分钟搭建一个属于自己的网盘系统

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

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

    【小白教程】十分钟搭建Stable Diffusion WebUI,白嫖三个月

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

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

    十分钟,零基础使用uniCloud完成后端管理系统搭建二

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

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

    【Microsoft Azure 的1024种玩法】五十四. 十分钟快速上手创建部署Azure speech服务

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

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

    【Microsoft Azure 的1024种玩法】三十三.十分钟快速部署 Azure Kubernetes Service 群集

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

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

    十分钟带汝入门大数据开发语言Scala

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

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

    Prometheus技术文档--基本安装-docker安装并挂载数据卷-《十分钟搭建》

    宿主机挂载目录位置: 以及准备对应的挂载目录: /usr/local/docker/promethues/server 准备如下: data、config、rules、ClientAll、server   授权相关文件夹权限  目标容器位置: /etc/prometheus/prometheus.yml 使用代码编辑配置文件: 书写如下配置:  解释配置: 这个 prometheus.yml 文件是Prome

    2024年02月14日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包