• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Sunrisepeak
V2EX  ›  程序员

通过定义一个内核接口层 OpenKAL,实现了 C++通用交叉编译/构建,可以在 Windows 上交叉编译 Linux 和 macos 程序 (其实更通用 在任意 OS 交叉构建到任意 OS 程序)

  •  
  •   Sunrisepeak ·
    Sunrisepeak · 1 day ago · 906 views

    注: 任意是指在 macos/windows/linux 任意一个 交叉编译到 macos/windows/linux


    Image
    6 replies    2026-08-26 03:18:36 +08:00
    coefu
        1
    coefu  
       21h 33m ago
    依赖的底层库都不同,任意对任意,你怎么交叉编译得成功,标题有点过了,还是要标明约束条件的。
    xinyu391
        2
    xinyu391  
       20h 41m ago
    llvm 不就支持的吗?
    干嘛还要搞个内核接口?
    SmiteChow
        3
    SmiteChow  
       15h 27m ago
    zig 挑战我的编译器?
    Sunrisepeak
        4
    Sunrisepeak  
    OP
       2h 47m ago
    @coefu 就是可以啊, 屏蔽了底层库区别,走统一 ABI openkal ,编译期自动分发
    Sunrisepeak
        5
    Sunrisepeak  
    OP
       2h 41m ago
    @xinyu391 llvm 设计上就是多指令集后端,但是各种原因 通用交叉编译是用不了的。即在 linux 构建出可以用标准库的 macos / windows / linux 程序 现实好像没有人做这块,只有 mingw 做了 linux -> windows 是比较常用的,但目前 mcpp + openkal 体系 做到了 3 x 3 任意交叉构建 直接覆盖了 mingw 的功能范围 (当然目前是 MVP 初步验证通过,稳定性等一些方面肯定不能和 mingw 比
    Sunrisepeak
        6
    Sunrisepeak  
    OP
       2h 38m ago
    @SmiteChow 目前 mcpp 的方式是 把 kernel abi / c abi / c++ abi 变成编译期确定 可组合,和 编译器核心 解耦,和 zig 方式 可能稍微有点区别
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   958 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:57 · PVG 05:57 · LAX 14:57 · JFK 17:57
    ♥ Do have faith in what you're doing.