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

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

  •  
  •   Sunrisepeak ·
    Sunrisepeak · 1 day ago · 935 views

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


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