Roman Mahotskyi
Roman Mahotskyi

Reputation: 6685

Error: proc macro `main` not expanded: Cannot create expander for

I want to run a web server with Rust and Actix-Web. After following these steps of their documentation everything works as expected: the server runs on port 8080.

The problem I have is that VSCode shows errors

Screenshot from VSCode with errors

This error message is shown in the tooltip upon hovering the error in the IDE

proc macro main not expanded: Cannot create expander for /Users/name/Documents/projects/project-rust/target/debug/deps/libactix_web_codegen-b262af45f63000f3.dylib: Io(Custom { kind: InvalidData, error: DlOpen { desc: "dlopen(/Users/name/Documents/projects/project-rust/target/debug/deps/libactix_web_codegen-b262af45f63000f3.dylib, 0x000A): tried: '/Users/name/Documents/projects/project-rust/target/debug/deps/libactix_web_codegen-b262af45f63000f3.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/local/lib/libactix_web_codegen-b262af45f63000f3.dylib' (no such file), '/usr/lib/libactix_web_codegen-b262af45f63000f3.dylib' (no such file)" } })

Environemnt - macOS Monterey 12.1 (M1)

Upvotes: 15

Views: 11308

Answers (3)

Sajjon
Sajjon

Reputation: 9907

Gotcha: Verify that you have not accidentally added a rust-toolchain.toml file in a subdirectory (instead of project root) pointing to some other rust version than your global....

Once I moved the rust-toolchain.toml to the project root (in a workspace, multi-crate project), and cargo clean the issue dissappeared for me!

Upvotes: 0

Uwe Pachler
Uwe Pachler

Reputation: 81

For me, reinstalling VS Code was not necessary:

  • Go into plugin settings in VSCode, uninstall the Rust-Analyzer plugin
  • Restart VS Code
  • Reinstall Rust-Analyser

The restart was necessary for me, because otherwise reinstallation would fail.

Upvotes: 8

Roman Mahotskyi
Roman Mahotskyi

Reputation: 6685

VS Code


Thanks, @Smitop for the tip

I reinstalled VSCode with universal build and the errors are gone

enter image description here

P.S. I tried to install the build for Apple Silicon, but it didn't help

NVIM (macOS, arm64, m1)


For those experiencing the same issue in NeoVim, the following steps helped resolve the errors.

  1. Open a terminal
  2. Execute rustup toolchain list

It should print

stable-aarch64-apple-darwin (default)
stable-x86_64-apple-darwin 
  1. Copy the stable-x86_64-apple-darwin and make it default, by using rustup default stable-x86_64-apple-darwin
  2. Re-open NeoVim.
  3. Errors should disappear

Upvotes: 9

Related Questions