Jak opravit Rust failed to run custom build command pro `ethercat-sys v0.3.1`
Problém
Při pokusu o instalaci crate ethercat nebo ethercat-sys narazíte na následující problém:
error: failed to run custom build command for `ethercat-sys v0.3.1`
Caused by:
process didn't exit successfully: `/home/uli/Nextcloud/Experimental/RS402/target/debug/build/ethercat-sys-c6763acfbe4bdda5/build-script-build` (exit status: 101)
--- stderr
thread 'main' panicked at /home/uli/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ethercat-sys-0.3.1/build.rs:8:46:
Please set the ETHERCAT_PATH env var to the location of a checkout of the Ethercat master after running configure: NotPresent
note: run with `RUST_BACKTRACE=1` environment variable to display a backtraceŘešení
Crate ethercat-sys, který je závislostí crate ethercat, vyžaduje umístění lokálního checkoutu repozitáře EtherCAT master pro sestavení nativních bindingů.
Pro vyřešení tohoto problému jednoduše naklonujte repozitář EtherCAT master a nastavte proměnnou prostředí ETHERCAT_PATH tak, aby ukazovala na umístění tohoto checkoutu. Vzhledem k tomu, že crate ethercat-sys potřebuje config.h, samotné naklonování repozitáře nestačí; musíte také sestavit EtherCAT master.
git clone https://gitlab.com/etherlab.org/ethercat.git ~/.etherlab-ethercat
cd ~/.etherlab-ethercat
./bootstrap
./configure
make -j8Nyní můžete nastavit proměnnou prostředí ETHERCAT_PATH. Můžete to udělat dočasně ve vaší terminálové relaci, ale doporučuji to udělat trvale přidáním do konfiguračního souboru vašeho shellu (např. ~/.bashrc nebo ~/.zshrc).
export ETHERCAT_PATH="$HOME/.etherlab-ethercat"S nastavenou proměnnou prostředí ETHERCAT_PATH byste nyní měli být schopni sestavit váš Rust projekt, který závisí na crate ethercat, bez výše uvedené chyby. Nezapomeňte znovu načíst konfiguraci shellu pomocí source ~/.bashrc nebo podobně, nebo restartovat terminálovou relaci pro aplikování změn, pokud jste umístili export příkaz do konfiguračního souboru shellu.
cargo build