【问题标题】:Is it possible to compile GLib (and then compile Autotrace) with Emscripten?是否可以使用 Emscripten 编译 GLib(然后编译 Autotrace)?
【发布时间】:2020-03-29 12:44:58
【问题描述】:

使用典型的configuremakemake install 工作流程,使用Emscripten 进行编译似乎非常容易。

我想编译Autotrace(它使用此工作流程),但它需要GLib

在 Emscripten 文档中,提到在这种情况下 GLib 必须使用 Emscripten 编译。但是 GLib 使用 mesonninja 作为编译工具。

是否可以使用 Emscripten 编译 GLib? (让 Autotrace 在浏览器中工作就足够了吗?)

【问题讨论】:

    标签: glib emscripten ninja meson-build


    【解决方案1】:

    Meson 支持交叉编译,因此您可以通过编写“交叉文件”将 Emscripten 视为交叉编译器:

    emscripten.txt

    [binaries]
    c = '/opt/emsdk-portable/emscripten/1.38.8/emcc'
    cpp = '/opt/emsdk-portable/emscripten/1.38.8/em++'
    ar = '/opt/emsdk-portable/emscripten/1.38.8/emar'
    #exe_wrapper = 'node'
    
    [properties]
    root = '/opt/emsdk-portable/emscripten/1.38.8/system'
    c_args = ['-s', 'WASM=1', '-O2']
    c_link_args = ['-s', 'WASM=1','-O2']
    cpp_args = ['-s', 'WASM=1','-O2']
    cpp_link_args = ['-s', 'WASM=1','-O2']
    shared_lib_suffix = 'js'
    static_lib_suffix = 'js'
    shared_module_suffix = 'js'
    exe_suffix = 'js'
    
    [host_machine]
    system = 'emscripten'
    cpu_family = 'x86'
    cpu = 'i686'
    endian = 'little'
    

    (取自https://github.com/prozum/meson-samples/blob/master/emscripten.txt

    将路径替换为您的 Emscripten 工具的路径。然后用meson --cross-file=emscripten.txt 调用介子。

    【讨论】:

    • 谢谢!但我收到此错误:ERROR: Problem encountered: Unsupported pair: system "emscripten", cpu family "x86"。我试过 cpu_family = x86_64, wasm32, wasm64 没有任何效果。
    • 您可能需要查看 Meson 文档以获取正确的值以填写 [host] 部分。
    • 你的介子版本够新吗?
    • 可能是太新了,我刚安装,我的版本是0.54.0
    猜你喜欢
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多