Eu tento escrever um bash que compila e executa múltiplos arquivos. A compilação funciona, mas a execução trava.
Aqui está o código:
#!/bin/bash
echo "Génération des executables"
for file in $(ls *_test.c)
do
echo "génération de ${file%.c}.exe"
#gcc -o "${file%.c}.exe" -I$1 '$file' $1/examCIN.c
gcc -o ${file%.c}.exe $file examCIN.c
done
echo; echo "**************"
echo "Execution des tests"
for file in $(ls *_test.exe)
do
echo "execution de ./$file"
$(./$file)
done
e aqui está o resultado da execução:
fafi_dev@fafi-UbuntuStudio:~/Documents/Professionnel/Cours_Fab/ISEN/Algo/2024-2025/Examens/CIN-U/machine/Sujet$ ./test.sh
Génération des executables
génération de examCIN_BSTdelete_test.exe
/usr/bin/ld : /tmp/cc4KKeHZ.o : dans la fonction « BSTdelete_test » :
examCIN_BSTdelete_test.c:(.text+0x4f4) : référence indéfinie vers « BSTdelete »
/usr/bin/ld : examCIN_BSTdelete_test.c:(.text+0x51d) : référence indéfinie vers « BSTdelete »
collect2: error: ld returned 1 exit status
génération de examCIN_BSTdequeue_test.exe
génération de examCIN_BSTenqueue_test.exe
génération de examCIN_BSTinsert_test.exe
génération de examCIN_BSTmin_test.exe
génération de examCIN_BSTprint_test.exe
génération de examCIN_BSTSearch_test.exe
génération de examCIN_initTreeNode_test.exe
**************
Execution des tests
execution de ./examCIN_BSTdequeue_test.exe
./test.sh: ligne 17: examCIN_BSTdelete_test.c : commande introuvable
execution de ./examCIN_BSTenqueue_test.exe
./test.sh: ligne 17: Vérifiez : commande introuvable
execution de ./examCIN_BSTinsert_test.exe
./test.sh: ligne 17: examCIN_BSTdelete_test.c : commande introuvable
execution de ./examCIN_BSTmin_test.exe
./test.sh: ligne 17: examCIN_BSTdelete_test.c : commande introuvable
execution de ./examCIN_BSTprint_test.exe
./test.sh: ligne 17: vérifiez : commande introuvable
execution de ./examCIN_BSTSearch_test.exe
./test.sh: ligne 17: examCIN_BSTdelete_test.c : commande introuvable
execution de ./examCIN_initTreeNode_test.exe
./test.sh: ligne 17: examCIN_BSTdelete_test.c : commande introuvable
Alguém pode me explicar por que o arquivo a ser executado é o .c
arquivo e não .exe
o echo
?