wasm-micro-runtime/samples/wasm-c-api
liang.he@intel.com 797a442ed1 Enhance build configuration to support optional gc
There will be two sets of binaries for iwasm and wamrc.
One set without a suffix indicates there is no GC support.
Another set with the suffixes "-gc" and "-gc-eh" includes GC support.
Users cannot disable GC through command line options; they need to
choose the appropriate set to use.
2025-08-31 08:33:04 +00:00
..
src Change WASM_ANYREF to WASM_EXTERNREF (#3426) 2024-05-14 11:08:16 +08:00
CMakeLists.txt Enhance build configuration to support optional gc 2025-08-31 08:33:04 +00:00
README.md fix: correct typos and improve comments across multiple files by codespell (#4116) 2025-03-07 08:21:54 +08:00

WAMR supports wasm-c-api in both interpreter mode and aot mode.

Before staring, we need to download and install WABT.

$ cd /opt
$ wget https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz
$ tar -xzf wabt-1.0.31-ubuntu.tar.gz
$ mv wabt-1.0.31 wabt

By default, all samples are compiled and run in "interpreter" mode.

$ mkdir build
$ cd build
$ cmake ..
$ make
$ # it will build a library with c-api supporting.
$ # Also copy *.wasm from ../src/
$ # and generate executable files
$ # now, it is ok to run samples
$ ./hello
$ ...
$ ./global
$ ...
$ ./callback
$ ...

They can be compiled and run in aot mode when some compiling flags are given.

$ mkdir build
$ cd build
$ cmake -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_AOT=1 ..
$ make
$ # it will build a library with c-api supporting.
$ # Also copy *.wasm from ../src/
$ # and transform *.wasm to *.aot
$ # and generate executable files
$ # now, it is ok to run samples
$ ./hello
$ ...
$ ./global
$ ...
$ ./callback
$ ...