2

I've been trying to convert a cpp file to wasm without emscripten recently and I've been running with some errors, for example, when I run these commands:

clang++ --target=wasm32 -nostdlib -O3 -o public/main.o -c src/*.cpp

wasm-ld --no-entry --export-all --lto-O3 --allow-undefined --import-memory public/main.o -o public/main.wasm

it gives me this error:

 wasm-ld: error: unknown file type public/main.o

Here are the versions of clang and lld that I currently have:

clang version 12.0.1
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /nix/store/jp4r5v8pla63qam5w34jvfyfmq8p74am-clang-12.0.1/bin

LLD 12.0.1

Also, I'm running the code on replit

Thank you

1 Answers1

1

Ok, with this commands it works :D

clang++ --target=wasm32 -emit-llvm -c -S -o public/files/main.ll src/main.cpp
llc -march=wasm32 -filetype=obj -o public/files/main.o public/files/main.ll
wasm-ld --no-entry --export-all -o public/main.wasm public/files/main.o

The only thing is that you need to create some new files (main.ll and main.o) but it doesn't matter.

The place where I obtained the solution is here: https://surma.dev/things/c-to-webassembly/index.html It was really useful