V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
punkdead
V2EX  ›  Linux

问下 mac 下用 clion 学习 Linux c 编程的问题

  •  
  •   punkdead · 2023-02-13 09:13:26 +08:00 · 2995 次点击
    这是一个创建于 409 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是所有 linux 下的函数 我都可以在 clion 的 mac 环境下进行调用 ,并且编译调试成功嘛? 比如 epoll pthread 等等

    这是什么原理呢? mac 不是 unix 的系统嘛,和 linux 应该还是有不少缺点的吧

    我之前一直以为要学 linux c 编程 必须要装个 linux 虚拟机才行

    有大佬可以指点一下嘛,

    21 条回复    2023-02-13 18:20:10 +08:00
    edk24
        1
    edk24  
       2023-02-13 09:22:53 +08:00
    无所谓 c 会出手, c 可以在 win mac lin 上运行和编译, 担心多余了
    BingoXuan
        2
    BingoXuan  
       2023-02-13 09:27:05 +08:00
    大家都是类 unix 系统(虽然 macOS 好像有 bsd 的授权,但和正统 unix 还是差太远了),unix api 应该都是有的。

    在 macOS 上 epoll 应该不能调用吧。可以用 clion 编译好直接上 docker 运行或者 debug 。
    pagxir
        3
    pagxir  
       2023-02-13 09:32:09 +08:00 via Android
    epoll 不行,不过 kqueue 应该可以
    pming1
        4
    pming1  
       2023-02-13 09:36:12 +08:00
    学 C ,用 Linux 才是最好的吧
    PTLin
        5
    PTLin  
       2023-02-13 09:49:02 +08:00
    什么时候你要用到 clone ,io_uring ,epoll ,signalfd 什么的在装虚拟机也不迟。
    echo1937
        6
    echo1937  
       2023-02-13 09:54:12 +08:00
    如果你是学习 Linux C 编程,你需要有远程 Linux 环境,
    在 Clion 进行简单设置以后,可以一键在远程环境进行编译、运行,
    省去手动拷贝源代码至远程环境、编译、运行的步骤。

    如果你只是学习 ANSI C ,那倒是不需要远程 Linux 环境。
    routiner
        7
    routiner  
       2023-02-13 10:08:19 +08:00
    CLion 的 IDE 功能很强大,但个人感觉文件同步没有 VS Code 舒服。
    levelworm
        8
    levelworm  
       2023-02-13 10:40:47 +08:00 via Android
    装个 linux 虚拟机也行。我感觉学习一门新语言还是 vscode 舒服。
    Elaina
        9
    Elaina  
       2023-02-13 10:48:41 +08:00
    除了楼上说的,还有一点就是如果你用的 Arm 架构的 M1 芯片,写起来会挺难受的😂
    hxysnail
        10
    hxysnail  
       2023-02-13 11:06:26 +08:00
    我觉得装个 linux 虚拟机(服务器版就行),然后 vscode+remote 应该就可以愉快地玩耍了
    xFrye
        11
    xFrye  
       2023-02-13 11:15:43 +08:00
    学习的话,clion 可以连本地 docker 的 Linux 环境当 toolchain
    lucifer9
        12
    lucifer9  
       2023-02-13 11:41:36 +08:00
    @BingoXuan macOS 是一个符合 UNIX 03 标准的操作系统,由 The Open Group 认证。它从 2007 年开始,从 MAC OS X 10.5 开始。唯一的例外是 Mac OS X 10.7 Lion ,但在 OS X 10.8 Mountain Lion 中重新获得了合规性。
    fgodt
        13
    fgodt  
       2023-02-13 11:48:59 +08:00
    epoll 不行 Mac 是 kqueue ,不过这两个东西都大同小异,建议还是在 Linux 上开发
    emperinter
        14
    emperinter  
       2023-02-13 12:52:38 +08:00
    有些项目对 M 系列支持不够友好,基本都是基于 X86 或 ARM 的 linux 做了条件编译。mac 上一堆 error 报错,缺少相关支持。
    pennai
        15
    pennai  
       2023-02-13 13:02:38 +08:00
    有些 API Linux 上有 mac 是没有的,即使有接口也不一定完全相同,建议要学 linux c 的话一开始就在 linux 搭环境,这样体验最好
    3dwelcome
        16
    3dwelcome  
       2023-02-13 13:28:52 +08:00
    正常来说,都是装一个 linux 虚拟机,在虚拟机里运行 vscode 。

    但我不是,写代码久了,就会有属于自己的高度定制化 IDE ,和 CI 集成编译自动化发布系统。

    我更偏好用顺手的 IDE 写代码,可以用交叉编译远程发布。调试的话,一般我用 log 文件,原因是写服务器不同于客户端,BUG 都藏的很深,平时运行没那么容易挂。对于容易复现的 BUG ,挂个 gdb remote 调试就可以了。
    madNeal
        17
    madNeal  
       2023-02-13 13:32:09 +08:00
    clion 都要停止维护了
    dongxf
        18
    dongxf  
       2023-02-13 13:42:36 +08:00
    @madNeal 啊?哪里的消息?
    tairan2006
        19
    tairan2006  
       2023-02-13 15:37:01 +08:00
    Linux C 只能用 linux 环境,mac 差别很大的。

    不过你可以用 docker 或者 multipass 搞一个 linux 环境。
    actar
        20
    actar  
       2023-02-13 16:27:27 +08:00
    @madNeal 说的不是 AppCode 要停止维护吗,CLion 没听说过啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1041 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 22:24 · PVG 06:24 · LAX 15:24 · JFK 18:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.