在典型的configure
,make
和make install
工作流程中,使用Emscripten进行编译似乎非常容易。
我想编译Autotrace(使用此工作流程),但它需要GLib。
在Emscripten文档中,提到了在这种情况下GLib必须使用Emscripten进行编译。但是GLib使用meson
和ninja
作为编译工具。
是否可以用Emscripten编译GLib? (足以使Autotrace在浏览器中运行吗?)
答案 0 :(得分: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
调用介子。