2 votes

erreur : bash : ./autogen.sh : Aucun fichier ou répertoire de ce type

Besoin d'installer st-linkv2 dans eclipse pour la programmation de stm32f4.

automake, dh-autoreconf, libusb-1.0-0-dev sont nécessaires pour st-linkv2.

Le terminal ressemble à ça :

abin@abin-Compaq-Presario-C700-Notebook-PC:~/ARMToolchains/stlink-master$ ls -a
.               debian        LICENSE                 .travis.sh
..              doc           Makefile                .travis.yml
.appveyor.yml   etc           README.md               usr
build           flashloaders  scripts                 .version
ChangeLog.md    .github       src
cmake           .gitignore    stlinkv1_macosx_driver
CMakeLists.txt  include       tests
$ ./autogen.sh
bash: ./autogen.sh: No such file or directory
$ whereis automake
automake: /usr/share/man/man1/automake.1.gz
$ ./configure
bash: ./configure: No such file or directory
$ sudo apt-get install automake
[sudo] password for abin: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
automake is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 18 not upgraded.
$ whereis autoconf
autoconf: /usr/bin/autoconf /usr/share/autoconf /usr/share/man/man1/autoconf.1.gz
$ whereis libusb-1.0-0-dev
libusb-1: /usr/include/libusb-1.0

J'ai téléchargé la source à partir de ici sur GitHub .

J'ai suivi aveuglément cette vidéo You Tube qui montre comment utiliser Eclipse sous Linux pour programmer une carte STM et transférer le code dans la carte. Le réalisateur de la vidéo effectue l'opération que j'essaie de faire à 8:37.

Le système d'exploitation est Ubuntu 15.04, 32 bits.

J'aimerais savoir comment le compiler. J'aimerais également comprendre pourquoi nous utilisons des méthodes telles que ./autogen.sh et d'autres commandes.

2voto

Zanna Points 65764

La syntaxe que vous utilisez

./name-of-file

lance un exécutable dans le répertoire de travail actuel. Si vous ne voyez pas name-of-file con ls -a il échouera avec l'erreur que vous avez vue, et s'il n'a pas la permission d'exécuter pour l'utilisateur qui exécute la commande, il échouera avec permission denied (s'il n'y a pas de bits x définis du tout, et que vous essayez de l'exécuter avec sudo le message d'échec sera command not found )

Le programme que vous essayez de compiler utilise la fonction cmake pour configurer l'environnement de construction, et il n'y a évidemment aucune autogen.sh (ou configure ) script à exécuter.

Je viens de construire avec succès cette version à partir de la page GitHub à laquelle vous avez accédé. C'était simple, et je n'ai rencontré aucun problème.

Tout d'abord, vous devez installer toutes les dépendances pour la construction. Je ne suis pas sûr que tout cela soit réellement nécessaire, mais vous avez mentionné avoir besoin de certaines d'entre elles de toute façon...

sudo apt install build-essential automake dh-autoreconf libusb-1.0-0-dev cmake g++

créer un répertoire à l'emplacement indiqué dans votre capture d'écran (ouvrir un terminal et cd /ARMToolchains/stlink-master si nécessaire... pourquoi ne construisez-vous pas dans votre répertoire personnel ? Je recommande de déplacer le répertoire entier vers $USER mais bon...) la méthode de base est la suivante

mkdir build
cd build
cmake ..

Quand cela se termine avec succès, vous pouvez exécuter

make

Si cela existe avec succès, vous pouvez exécuter

sudo make install

Pour déplacer les binaires aux bons endroits. Sinon, vous pouvez les exécuter depuis le répertoire courant. Si vous n'arrivez pas à construire la version que vous avez déjà téléchargée (cela arrive assez souvent lors du clonage du master car il peut être en train d'être modifié), téléchargez une des versions (comme celle que j'ai liée ci-dessus) et réessayez.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X