问下 mac 下用 clion 学习 Linux c 编程的问题 - V2EX
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 4025 次点击
    这是一个创建于 1022 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是所有 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 环境。
    YYSn5k19667xsfSA
        7
    YYSn5k19667xsfSA  
       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 环境。
    KotlinAmai
        20
    KotlinAmai  
       2023-02-13 16:27:27 +08:00
    @madNeal 说的不是 AppCode 要停止维护吗,CLion 没听说过啊
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     951 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 19:34 PVG 03:34 LAX 11:34 JFK 14:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86