Skip to content

error: could not exec the linker 'emcc' on windows while compiling some basic rust code #4741

@akatechis

Description

@akatechis

Full error message:

$ rustc --target=wasm32-unknown-emscripten hello.rs
error: could not exec the linker `emcc`: The system cannot find the file specified. (os error 2)
  |
  = note: "emcc" "-L" "C:\\Users\\Alex\\.multirust\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\wasm32-unknown-emscripten\\lib" "hello.0.o" "-o" "hello.js" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "C:\\Users\\Alex\\.multirust\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\wasm32-unknown-emscripten\\lib" "-Wl,-Bstatic" "-Wl,-Bdynamic" "C:\\Users\\Alex\\.multirust\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\wasm32-unknown-emscripten\\lib\\libstd-17342542cc541012.rlib" "C:\\Users\\Alex\\.multirust\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\wasm32-unknown-emscripten\\lib\\librand-46ed9b788a6928f6.rlib" "C:\\Users\\Alex\\.multirust\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\wasm32-unknown-emscripten\\lib\\libcollections-e32369d7fef31fbf.rlib" "C:\\Users\\Alex\\.multirust\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\wasm32-unknown-emscripten\\lib\\librustc_unicode-844a33a197b559a5.rlib" "C:\\Users\\Alex\\.multirust\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\wasm32-unknown-emscripten\\lib\\libpanic_unwind-f78756b576499725.rlib" "C:\\Users\\Alex\\.multirust\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\wasm32-unknown-emscripten\\lib\\libunwind-11f7709e0c71505b.rlib" "C:\\Users\\Alex\\.multirust\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\wasm32-unknown-emscripten\\lib\\liballoc-24699c1ddb055eb0.rlib" "C:\\Users\\Alex\\.multirust\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\wasm32-unknown-emscripten\\lib\\liballoc_system-3e467e865c8fa572.rlib" "C:\\Users\\Alex\\.multirust\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\wasm32-unknown-emscripten\\lib\\liblibc-60365c932e50e382.rlib" "C:\\Users\\Alex\\.multirust\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\wasm32-unknown-emscripten\\lib\\libcore-d9873b515905cac5.rlib" "C:\\Users\\Alex\\.multirust\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\wasm32-unknown-emscripten\\lib\\libcompiler_builtins-e428224f6caf212a.rlib" "-l" "c" "-s" "BINARYEN=1" "-s" "ERROR_ON_UNDEFINED_SYMBOLS=1"

I'm currently following the instructions at https://users.rust-lang.org/t/compiling-to-the-web-with-rust-and-emscripten/7627 to compile some rust code into wasm32.

I followed the instructions to install emscriptensdk from the website, and ran the following:

$ emsdk activate sdk-incoming-64bit
Writing .emscripten configuration file to user home directory C:\Users\Alex/
The Emscripten configuration file C:\Users\Alex\.emscripten has been rewritten with the following contents:

import os
LLVM_ROOT='C:/Program Files/Emscripten/clang/fastcomp/build_incoming_vs2013_64/RelWithDebInfo/bin'
NODE_JS='C:/Program Files/Emscripten/node/4.1.1_64bit/bin/node'
PYTHON='C:/Program Files/Emscripten/python/2.7.5.3_64bit/python.exe'
JAVA='C:/Program Files/Emscripten/java/7.45_64bit/bin/java.exe'
EMSCRIPTEN_ROOT='C:/Program Files/Emscripten/emscripten/incoming'
EMSCRIPTEN_NATIVE_OPTIMIZER='C:/Program Files/Emscripten/emscripten/incoming_64bit_optimizer/RelWithDebInfo/optimizer.exe'
SPIDERMONKEY_ENGINE = ''
V8_ENGINE = ''
TEMP_DIR = 'c:/users/alex/appdata/local/temp'
COMPILER_ENGINE = NODE_JS
JS_ENGINES = [NODE_JS]

Adding directories to PATH:
PATH += C:\Program Files\Emscripten\clang\fastcomp\build_incoming_vs2013_64\RelWithDebInfo\bin
PATH += C:\Program Files\Emscripten\node\4.1.1_64bit\bin
PATH += C:\Program Files\Emscripten\emscripten\incoming

Setting environment variables:
EM_CONFIG = C:\Users\Alex\.emscripten
JAVA_HOME = C:\Program Files\Emscripten\java\7.45_64bit
EMSCRIPTEN = C:\Program Files\Emscripten\emscripten\incoming

To permanently register this environment globally to all users in Windows Registry, rerun the command with the option --global.

I suspect that the issue is python, because when I just run emcc command, I get /usr/bin/env: ‘python2’: No such file or directory, but if I run which python I get /c/Python27/python.
I'm using Git Bash rather than CMD. Should I create a symlink to point python2 to python?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions