Comment corriger Rust : failed to run custom build command for `ethercat-sys v0.3.1`
Problème
Lors de la tentative d’installation de la crate ethercat ou ethercat-sys, vous rencontrez le problème suivant :
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 backtraceSolution
La crate ethercat-sys, qui est une dépendance de la crate ethercat, nécessite l’emplacement d’une copie locale du dépôt du maître EtherCAT pour construire ses liaisons natives.
Pour résoudre ce problème, clonez simplement le dépôt du maître EtherCAT et définissez la variable d’environnement ETHERCAT_PATH pour pointer vers l’emplacement de cette copie. Comme la crate ethercat-sys a besoin de config.h, cloner simplement le dépôt ne suffit pas ; vous devez également construire le maître EtherCAT.
git clone https://gitlab.com/etherlab.org/ethercat.git ~/.etherlab-ethercat
cd ~/.etherlab-ethercat
./bootstrap
./configure
make -j8Vous pouvez maintenant définir la variable d’environnement ETHERCAT_PATH. Vous pouvez le faire temporairement dans votre session terminal, mais je recommande de le faire de manière permanente en l’ajoutant à votre fichier de configuration shell (par ex. ~/.bashrc ou ~/.zshrc).
export ETHERCAT_PATH="$HOME/.etherlab-ethercat"Avec la variable d’environnement ETHERCAT_PATH définie, vous devriez maintenant pouvoir construire votre projet Rust qui dépend de la crate ethercat sans rencontrer l’erreur précédente. N’oubliez pas de recharger votre configuration shell avec source ~/.bashrc ou similaire, ou de redémarrer votre session terminal pour appliquer les changements, si vous avez placé la commande export dans votre fichier de configuration shell.
cargo build