OSX 生成 Linux 可执行文件

2020-01-20 12:48:38 +08:00
 stancaohua

本人初学者,想问问在 macbook 下能编译生成目标平台为 Linux 的可执行文件( c 语言写的,clion 生成的)吗?我用 file 命令看到的是 Mach-O 格式的,好像不能直接在 Linux 系统下运行。

还是说必须要在 Linux 系统下编译才能在 Linux 系统下执行?或者需要配置 clion 吗?

4530 次点击
所在节点    程序员
26 条回复
knowckx
2020-01-20 12:49:53 +08:00
来用 go 吧,交叉编译,你值得拥有
ysc3839
2020-01-20 12:52:34 +08:00
不一定要在 Linux 下编译,你这种情况叫做交叉编译,即在当前系统下编译另一平台 /系统的程序。
不过如果不想折腾的话,我还是建议虚拟机安装 Linux 编译。
hyq
2020-01-20 12:54:26 +08:00
你需要交叉编译器,就可以编译出其他平台的二进制
github.com/tpoechtrager/osxcross
jinliming2
2020-01-20 12:54:44 +08:00
交叉编译,不想折腾的话装个 Docker 在容器里编译就行……
azh7138m
2020-01-20 12:54:53 +08:00
能。
不是。
或许不用,就正常写 makefile (?
ashong
2020-01-20 13:02:16 +08:00
我用 go 编译生成运行没问题
orvice
2020-01-20 13:06:31 +08:00
docker
stancaohua
2020-01-20 13:11:03 +08:00
@ashong
@knowckx 作业要求用 c 写。。
@ysc3839
@hyq
@jinliming2 嗯嗯我去了解下交叉编译,我现在就是用 docker 重新搭了一套 cmake 用 makefile 编译的
@azh7138m clion 自动生成的 makefile 好像没看到可以改目标平台的地方
qieqie
2020-01-20 13:14:15 +08:00
@hyq 你这个反了,这个是 host linux, target macos 的 toolchain
楼主既然用 clion,可以用 ide 支持的相关 remote build 功能: https://www.jetbrains.com/help/clion/remote-projects-support.html
wizardoz
2020-01-20 13:18:44 +08:00
clion remote build 或者 交叉编译
Nasei
2020-01-20 13:20:53 +08:00
你要周围有 win10 的笔记本,可以用 wsl 编译
clayyj1210
2020-01-20 13:21:49 +08:00
@ashong 不同平台上编译,一些底层依赖还是有点差异的。
virusdefender
2020-01-20 13:42:49 +08:00
交叉编译还是有些麻烦的,直接 docker 吧。
ccpp132
2020-01-20 13:47:26 +08:00
初学者建议要交 linux 就用 linux 写,别耍杂技
hanai
2020-01-20 14:01:49 +08:00
用 docker 最方便
augustheart
2020-01-20 14:11:57 +08:00
安装相应平台的工具链,编译时候加上 arch,正常写就行了。
augustheart
2020-01-20 14:12:45 +08:00
交叉编译不难,但是编译环境要折腾。
Vegetable
2020-01-20 14:17:47 +08:00
得不偿失,如果只是作业需要 linux,没必要非得交叉编译。如果作业是交叉编译...
VDimos
2020-01-20 14:20:36 +08:00
可以,有几个方案:
1.交叉编译,看语言有没有工具链可以用,大概率有的
2. docker 中编译目标系统可执行文件
3. 虚拟机,同 2
4. 云服务器
loading
2020-01-20 14:23:14 +08:00
别信楼上这些,乖乖先装个虚拟机 vbox 就挺好,把作业写完

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

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

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

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

© 2021 V2EX