新手请问BinaryBuilder.jl能把多种语言的代码编译成多个平台的二进制?跨时代的里程碑式的包?

我调用了c++编译的某开源外部程序,像这样

e = open(`./something`, "r+")  # 启动外部程序
println(e, "blah") # 启动后进入读写循环
blahblah = readline(e)

现在的问题是,那个外部程序的官方人员只编译了amd64的桌面跨平台二进制,但是没有arm64的手机版本,有非官方的人编译了手机版,但没有开源。请问使用BinaryBuilder.jl(以下简称br)可以将其编译成arm64版本吗?(br官方文档举了个julia调用c++库的例子,与外部程序的概念不同,所以来社区问了)

如果br可以做到,那可是跨时代的里程碑式的包呀,编程时经常遇到跨平台的难题,在这个系统能跑,在那个系统就跑不了了……有助于代码的跨平台运行的Docker看起来也只是虚拟机一类的平台软件,也就是说,在某系统的Docker里写完代码,想在另一个系统里跑,那个系统也得装Docker才行……br比它厉害多了,直接做成十几种平台的二进制!

你对 BinaryBuilder 的理解好像有一些偏差,BB 提供的是一个从源代码稳定构建出二进制程序的框架,在这背后依然是通过各个语言自己的构建工具去完成的。比如说,对于一个 C 代码 BB 可能实际上执行的是 cmake && make 操作,换句话说,如果要构建的源代码本身不支持 XXX 平台,那么 BB 再怎么样也无法支持 XXX 平台:它只是一个构建框架来允许你在 linux 平台上构建出其他平台的二进制(交叉编译)。

1 个赞