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

2023-02-13 09:13:26 +08:00
 punkdead

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

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

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

有大佬可以指点一下嘛,

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

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

如果你只是学习 ANSI C ,那倒是不需要远程 Linux 环境。
routiner
2023-02-13 10:08:19 +08:00
CLion 的 IDE 功能很强大,但个人感觉文件同步没有 VS Code 舒服。
levelworm
2023-02-13 10:40:47 +08:00
装个 linux 虚拟机也行。我感觉学习一门新语言还是 vscode 舒服。
Elaina
2023-02-13 10:48:41 +08:00
除了楼上说的,还有一点就是如果你用的 Arm 架构的 M1 芯片,写起来会挺难受的😂
hxysnail
2023-02-13 11:06:26 +08:00
我觉得装个 linux 虚拟机(服务器版就行),然后 vscode+remote 应该就可以愉快地玩耍了
xFrye
2023-02-13 11:15:43 +08:00
学习的话,clion 可以连本地 docker 的 Linux 环境当 toolchain
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
2023-02-13 11:48:59 +08:00
epoll 不行 Mac 是 kqueue ,不过这两个东西都大同小异,建议还是在 Linux 上开发
emperinter
2023-02-13 12:52:38 +08:00
有些项目对 M 系列支持不够友好,基本都是基于 X86 或 ARM 的 linux 做了条件编译。mac 上一堆 error 报错,缺少相关支持。
pennai
2023-02-13 13:02:38 +08:00
有些 API Linux 上有 mac 是没有的,即使有接口也不一定完全相同,建议要学 linux c 的话一开始就在 linux 搭环境,这样体验最好
3dwelcome
2023-02-13 13:28:52 +08:00
正常来说,都是装一个 linux 虚拟机,在虚拟机里运行 vscode 。

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

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

不过你可以用 docker 或者 multipass 搞一个 linux 环境。
actar
2023-02-13 16:27:27 +08:00
@madNeal 说的不是 AppCode 要停止维护吗,CLion 没听说过啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/915535

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX