Я пытаюсь статически связать свою программу C с WebAssembly с использованием Emscripten (em cc) с OpenSSL. Я уже скомпилировал OpenSSL из исходного кода (загруженного прямо с GitHub) в байтовый код LLVM, используя emconfigure
и emmake
. Это дало libcrypto.3.dylib
и libcrypto.a
. Поскольку для меня важна простота, а не двоичный размер, я хочу статически связать libcrypto с моей основной программой. Я попытался скомпилировать его с помощью следующей команды:
emcc crypto.c ./openssl/libcrypto.a -I./openssl/include -s WASM=1 -o index.html --ignore-dynamic-linking
Но, не повезло, при попытке запустить мой двоичный файл WebAssembly с использованием индекса по умолчанию. html, я все равно получаю сообщение об ошибке :
To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking
Я что-то упустил? Я новичок в Emscripten и дошел до этого, используя свой предыдущий опыт работы с clang и некоторую ссылку на документацию Emscripten (в частности, вышеупомянутое руководство по динамической компоновке c, которое я выбрал для go). Любая помощь будет оценена.