CC linking error when building esp32 hardware-check (rust)

I am following this book to do an hardware-check on a esp32 like mentioned on this page in the book.

When running cargo run I get a really long error that basically starts with this

error: linking with `cc` failed: exit status: 1

I have gcc installed. If I do which cc I get this

kronix@nixos:~/esp/std-training/intro/hardware-check/ > which cc
/run/current-system/sw/bin/cc

So I have gcc installed but cargo doesn’t find it?
What should I do to make it work?

Thanks in advance!

Please provide us the detailed setup how you do what you do and detailed error output of the commands you run. it seems you’re trying to link to some library which is not available in your “setup” which is hopefully a nix-shell.

1 Like

After switching my setup to a nix-shell that looks like that

{ pkgs ? import <nixpkgs> {} }:
  pkgs.mkShell {
    # nativeBuildInputs is usually what you want -- tools you need to run
    nativeBuildInputs = with pkgs.buildPackages; [
    gcc
    espflash
    rustup
    rustc
    rustfmt
    cargo
    ];
}

I still get the same error.

Here is the full error https://pastebin.com/N9jKUikN

Is anyone able to help me?

Unfortunately not yet. The link you posted with the error details is dead (404). I’m not sure what this error is.

I quickly tried with mkShell { packages = with pkgs; [ espflash rustup python3 ]; };, followed by rustup default stable and failed. Unfortunately I do not know the book, and the required tooling (besides Rust).

Here the error I got: Error: Could not install esp-idf

I haven’t used it myself (I have tried to avoid the framework), but maybe GitHub - mirrexagon/nixpkgs-esp-dev: Nix flake and overlay for ESP8266 and ESP32 development. is what you need here?

1 Like

Here is a shorten version of the error containing the important.

kronix@nixos:~/repos/std-training/intro/hardware-check/ > sudo cargo run
   Compiling compiler_builtins v0.1.109
   Compiling proc-macro2 v1.0.92
   Compiling unicode-ident v1.0.14
   Compiling libc v0.2.155
   Compiling memchr v2.5.0
   Compiling std v0.0.0 (/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std)
   Compiling memchr v2.7.4
   Compiling serde v1.0.215
   Compiling libc v0.2.164
   Compiling bitflags v2.6.0
   Compiling crossbeam-utils v0.8.20
   Compiling rustix v0.38.41
   Compiling syn v1.0.109
   Compiling glob v0.3.1
   Compiling nix v0.29.0
   Compiling anyhow v1.0.86
   Compiling rustversion v1.0.18
   Compiling prettyplease v0.2.25
   Compiling thiserror v1.0.69
   Compiling serde_json v1.0.133
   Compiling cvt v0.1.2
error: linking with `cc` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/root/.cargo/bin:/nix/store/rsl5pj2xkhbrpfw60w8asz6ln27lv5fc-kitty-0.37.0/bin:/nix/store/ym0d0c1hpxinxvr2qrfg1d1b9wnz6i71-imagemagick-7.1.1-40/bin:/nix/store/inpspwqhgpld2zdk89hra7xjh3nxll2x-ncurses-6.4.20221231-dev/bin:/run/wrappers/bin:/home/kronix/.local/share/flatpak/exports/bin:/var/lib/flatpak/exports/bin:/home/kronix/.nix-profile/bin:/nix/profile/bin:/home/kronix/.local/state/nix/profile/bin:/etc/profiles/per-user/kronix/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustclqGHxz/symbols.o" "/home/kronix/repos/std-training/intro/hardware-check/target/debug/build/serde_json-88b0886fbad617b3/build_script_build-88b0886fbad617b3.build_script_build.5dce32d6959309e0-cgu.0.rcgu.o" "/home/kronix/repos/std-training/intro/hardware-check/target/debug/build/serde_json-88b0886fbad617b3/build_script_build-88b0886fbad617b3.375gqbyzdmeoofumj5iwt7lxv.rcgu.o" "-Wl,--as-needed" "-L" "/home/kronix/repos/std-training/intro/hardware-check/target/debug/deps" "-L" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-c6c045f3358c0b22.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-5c2158c1682442e0.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-404d0b40d67de09f.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-e07eeabf48db885c.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-c92423f648579064.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-8dab5299a97564ae.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-65891f932666bb65.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-b2634d236d77b88a.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-38ef4997455a5e72.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-b2e6b39d803e65fe.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-0864893dee726241.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-e599f337a82d59c4.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-acbe32895031f6bc.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e21e611894cf2844.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-7b90a2705bcf265b.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-1f7e19b44251c73e.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-4d7d16bbf0636a40.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-B/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/self-contained" "-o" "/home/kronix/repos/std-training/intro/hardware-check/target/debug/build/serde_json-88b0886fbad617b3/build_script_build-88b0886fbad617b3" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
  = note: /nix/store/d1hc6cf5xdsak1r71af8l0aqvli0d0nc-rustup-1.27.1/nix-support/ld-wrapper.sh: line 19: /nix/store/d1hc6cf5xdsak1r71af8l0aqvli0d0nc-rustup-1.27.1/nix-support/darwin-sdk-setup.bash: No such file or directory
          collect2: error: ld returned 1 exit status


error: linking with `cc` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/self-contained:/root/.cargo/bin:/nix/store/rsl5pj2xkhbrpfw60w8asz6ln27lv5fc-kitty-0.37.0/bin:/nix/store/ym0d0c1hpxinxvr2qrfg1d1b9wnz6i71-imagemagick-7.1.1-40/bin:/nix/store/inpspwqhgpld2zdk89hra7xjh3nxll2x-ncurses-6.4.20221231-dev/bin:/run/wrappers/bin:/home/kronix/.local/share/flatpak/exports/bin:/var/lib/flatpak/exports/bin:/home/kronix/.nix-profile/bin:/nix/profile/bin:/home/kronix/.local/state/nix/profile/bin:/etc/profiles/per-user/kronix/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin" VSLANG="1033" "cc" "-m64" "/tmp/rustcwwbcs4/symbols.o" "/home/kronix/repos/std-training/intro/hardware-check/target/debug/build/prettyplease-b8d8e94d88d194d3/build_script_build-b8d8e94d88d194d3.build_script_build.d67b0f4f5024a3a4-cgu.0.rcgu.o" "/home/kronix/repos/std-training/intro/hardware-check/target/debug/build/prettyplease-b8d8e94d88d194d3/build_script_build-b8d8e94d88d194d3.1bu753qmnqxdpre145a3a9c7i.rcgu.o" "-Wl,--as-needed" "-L" "/home/kronix/repos/std-training/intro/hardware-check/target/debug/deps" "-L" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-c6c045f3358c0b22.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-5c2158c1682442e0.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-404d0b40d67de09f.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-e07eeabf48db885c.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-c92423f648579064.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-8dab5299a97564ae.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-65891f932666bb65.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-b2634d236d77b88a.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-38ef4997455a5e72.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-b2e6b39d803e65fe.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-0864893dee726241.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-e599f337a82d59c4.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-acbe32895031f6bc.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-e21e611894cf2844.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-7b90a2705bcf265b.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-1f7e19b44251c73e.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-f72b956e24d1de70.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-632ae0f28c5e55ff.rlib" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-4d7d16bbf0636a40.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-B/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-B/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/root/.rustup/toolchains/nightly-2024-06-30-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/self-contained" "-o" "/home/kronix/repos/std-training/intro/hardware-check/target/debug/build/prettyplease-b8d8e94d88d194d3/build_script_build-b8d8e94d88d194d3" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
  = note: /nix/store/d1hc6cf5xdsak1r71af8l0aqvli0d0nc-rustup-1.27.1/nix-support/ld-wrapper.sh: line 19: /nix/store/d1hc6cf5xdsak1r71af8l0aqvli0d0nc-rustup-1.27.1/nix-support/darwin-sdk-setup.bash: No such file or directory
          collect2: error: ld returned 1 exit status


   Compiling libloading v0.8.5
error: could not compile `serde_json` (build script) due to 1 previous error
warning: build failed, waiting for other jobs to finish...

It still does not work :confused: … help please

are you setup to build multiple arch? you may building x86 instead of aarch. You may want to look at Cross compiling - crane for some inspiration.

Okay so I think found the issue after DAYS of trying to know what’s wrong (turns out I am just an idiot that does not know enough about nixos).
Sadly, I have no idea how to solve it because I am kind of clueless on how NixOS actually works.
So basically the program I am trying to execute links the some dependencies using the cc crate.
But the Dependencies that the program tries to link to is located in its own folder.
So for example if the program is in the ./ path the dependencies are in ./target/debug/deps. Here is a list of them:

aho_corasick-d5aca9f7c08bf60b.d         libbitflags-2a54fc7d8f815a15.rmeta     libglobset-ae6c0f6f76efe997.rlib         libminimal_lexical-e151350e321c70ab.rlib   libunicode_ident-566ae5b002464345.rmeta
bitflags-2a54fc7d8f815a15.d             libbitflags-560efdb99b117eef.rlib      libglobset-ae6c0f6f76efe997.rmeta        libminimal_lexical-e151350e321c70ab.rmeta  libwalkdir-099221edb7b94a9e.rlib
bitflags-560efdb99b117eef.d             libbitflags-560efdb99b117eef.rmeta     libheck-3520df16d0133e7b.rlib            libnom-48e4e1234102c37d.rlib               libwalkdir-099221edb7b94a9e.rmeta
bstr-92b9b5e670edb974.d                 libbstr-92b9b5e670edb974.rlib          libheck-3520df16d0133e7b.rmeta           libnom-48e4e1234102c37d.rmeta              linux_raw_sys-b77fbec2cd3ef233.d
cc-10dd158761ac3c07.d                   libbstr-92b9b5e670edb974.rmeta         libhome-851362b92a3a2561.rlib            libnormpath-51197513a2e969f1.rlib          log-b6b1a89bf87ced53.d
cexpr-32bd8c1a46a43010.d                libcc-10dd158761ac3c07.rlib            libhome-851362b92a3a2561.rmeta           libnormpath-51197513a2e969f1.rmeta         memchr-c7ff0286392b94eb.d
cfg_aliases-63f6440762ade88f.d          libcc-10dd158761ac3c07.rmeta           libitertools-6b19e61de85dad77.rlib       libonce_cell-6dc575c335e8f5a1.rlib         minimal_lexical-e151350e321c70ab.d
cfg_if-57bf25c23e31efdb.d               libcexpr-32bd8c1a46a43010.rlib         libitertools-6b19e61de85dad77.rmeta      libonce_cell-6dc575c335e8f5a1.rmeta        nom-48e4e1234102c37d.d
cmake-57d6b1e953932e68.d                libcexpr-32bd8c1a46a43010.rmeta        libitoa-1607da79744ca1f9.rlib            libregex-5a18276622f1d513.rlib             normpath-51197513a2e969f1.d
cvt-dd2eb4e239b73be1.d                  libcfg_aliases-63f6440762ade88f.rlib   libitoa-1607da79744ca1f9.rmeta           libregex-5a18276622f1d513.rmeta            once_cell-6dc575c335e8f5a1.d
either-1262fa0ff94c8630.d               libcfg_aliases-63f6440762ade88f.rmeta  liblazycell-c2a1b2911705803e.rlib        libregex_automata-a6ad24e60cdfcf84.rlib    regex-5a18276622f1d513.d
fastrand-70b0ba7e632a0cd4.d             libcfg_if-57bf25c23e31efdb.rlib        liblazycell-c2a1b2911705803e.rmeta       libregex_automata-a6ad24e60cdfcf84.rmeta   regex_automata-a6ad24e60cdfcf84.d
glob-001115221c71ed95.d                 libcfg_if-57bf25c23e31efdb.rmeta       liblazy_static-7af2f34f8b124b26.rlib     libregex_syntax-eddb13b0f2ea78f9.rlib      regex_syntax-eddb13b0f2ea78f9.d
globset-ae6c0f6f76efe997.d              libcmake-57d6b1e953932e68.rlib         liblazy_static-7af2f34f8b124b26.rmeta    libregex_syntax-eddb13b0f2ea78f9.rmeta     rustc_hash-449b4f68ddd88550.d
heck-3520df16d0133e7b.d                 libcmake-57d6b1e953932e68.rmeta        liblibloading-054a21082cc39ce4.rlib      librustc_hash-449b4f68ddd88550.rlib        ryu-2ae7af5af0bb88e0.d
home-851362b92a3a2561.d                 libcvt-dd2eb4e239b73be1.rlib           liblibloading-054a21082cc39ce4.rmeta     librustc_hash-449b4f68ddd88550.rmeta       same_file-3c36b17025d91add.d
itertools-6b19e61de85dad77.d            libcvt-dd2eb4e239b73be1.rmeta          liblinux_raw_sys-b77fbec2cd3ef233.rlib   libryu-2ae7af5af0bb88e0.rlib               shlex-655cc32f79200f17.d
itoa-1607da79744ca1f9.d                 libeither-1262fa0ff94c8630.rlib        liblinux_raw_sys-b77fbec2cd3ef233.rmeta  libryu-2ae7af5af0bb88e0.rmeta              unicode_ident-566ae5b002464345.d
lazycell-c2a1b2911705803e.d             libeither-1262fa0ff94c8630.rmeta       libloading-054a21082cc39ce4.d            libsame_file-3c36b17025d91add.rlib         walkdir-099221edb7b94a9e.d
lazy_static-7af2f34f8b124b26.d          libfastrand-70b0ba7e632a0cd4.rlib      liblog-b6b1a89bf87ced53.rlib             libsame_file-3c36b17025d91add.rmeta
libaho_corasick-d5aca9f7c08bf60b.rlib   libfastrand-70b0ba7e632a0cd4.rmeta     liblog-b6b1a89bf87ced53.rmeta            libshlex-655cc32f79200f17.rlib
libaho_corasick-d5aca9f7c08bf60b.rmeta  libglob-001115221c71ed95.rlib          libmemchr-c7ff0286392b94eb.rlib          libshlex-655cc32f79200f17.rmeta
libbitflags-2a54fc7d8f815a15.rlib       libglob-001115221c71ed95.rmeta         libmemchr-c7ff0286392b94eb.rmeta         libunicode_ident-566ae5b002464345.rlib

These files also link to files in /root/.cargo/registry/src/... (I have no idea way though…)

And as far as I am aware, NixOS puts files inside /nix/store, therefore the program can’t link to the files it needs, because they are in completely different locations, I think?
Can someone explain the concept of /nix/store a little bit better or reference some learning material?
Anyways what do I do in such situation where the program need these dependencies? Can I include the dependencies in the /nix/store ? Or how to get the programming running with its dependencies? Not only in this case, but more generally. Like what do I do if I want my program to have dependencies etc?

Just a few ideas. These dependencies are all Rust crates (of course this a Rust project). Building a Rust project is typically done with buildRustPackage (see Nixpkgs Reference Manual) or with one of the alternative tools like Naersk.

I think what you are trying to achieve is maybe a bit too advanced for a Nix newbie. Wouldn’t it be better if you try first simpler problems like building hello world first with C and then with Rust before you try such an ambitious project like ESP programming with Rust on NixOS? I mean with the hello world approach you would learn step by step and get quickly results and positive results. Sorry for being off-topic, these are just my 2 cents.

1 Like

Thanks for the response!

Wouldn’t it be better if you try first simpler problems like building hello world first with C and then with Rust before you try such an ambitious project like ESP programming with Rust on NixOS?

I actually know c and rust pretty okay and coding on an ESP32 is my so called “next step”. The only problem is that I am a complete NixOS newbie (like you said).

These dependencies are all Rust crates (of course this a Rust project)

The ESP32 rust project actually depends on some C files, therefore the project wont compile, because of linking issues between the C files and the project. My solution is going to be to ditch NixOS for the development of the ESP32 and just use a devcontainer instead.

I really appreciate all the friendly help and Tips I got in this forum, especially from you.
So, thank you very much for you patience and your Help <3 !
I wish you all an amazing day.

3 Likes