wasmception

by yurydelendik

yurydelendik / wasmception

Minimal C/C++ language toolset for building wasm files

126 Stars 24 Forks Last release: Not found 53 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

NOTE: this project is archived in favor of WASI SDK.

wasmception

Minimal toolset for building wasm files

Export functions

Use linker's

--export
parameter to specify exports (with clang use
-Wl,--export
, e.g.
-Wl,--export=foo,--export=bar
). The use of
__attribute__ ((visibility ("default")))
is no longer preferable way to make methods visible --
--export-dynamic
needs to be added.

Compile C file

$(WASMCEPTION)/dist/bin/clang --sysroot=$(WASMCEPTION)/sysroot/ hi.c -o hi.wasm -nostartfiles -Wl,--no-entry,--export=foo

Compile C++ file

$(WASMCEPTION)/dist/bin/clang++ --sysroot=$(WASMCEPTION)/sysroot/ hi.cpp -o hi.wasm -nostartfiles -Wl,--no-entry,--export=bar -fno-exceptions

Required
main
and
_start
functions

The

-nostartfiles
will not require you to define the
main
function, but will be looking for the
_start
function: use
-Wl,--no-entry
clang (linker) option to avoid specified entry point. As alternative, you can add
void _start() {}
(or
extern "C" void _start() { }
in C++) to make linker happy due to
-nostartfiles
.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.