title: Question regarding Lucet - A WebAssembly runtime
body: <p>Since I was working on WebAssembly runtime these days, and I have a question regarding the WebAssembly runtime Lucet. I've taken a look at the official document, and it says the Lucet runtime tool <code>lucetc</code> can compile .wat or .wasm file into a platform-dependent shared object file (.so/.o), so, what's the difference between this process and compiling the source C/C++ file directly into the same shared object file with Clang/GCC?</p>
  <p>As the doc says (<a href="https://bytecodealliance.github.io/lucet/Your-first-Lucet-application.html" rel="nofollow noreferrer">https://bytecodealliance.github.io/lucet/Your-first-Lucet-application.html</a>), we need to compile the source C/C++ file into .wasm with Clang, and then compile the .wasm file into .so file with <code>lucetc</code>. Finally, run the generated .so file with <code>lucet-wasi</code>. So, why do we need to waste time here splitting the whole process into three? I can directly compile the source C/C++ file into .so with Clang/GCC, then run the result with <code>lucet-wasi</code>, right?</p>