Compilation Perl
thibaut31
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un programme Perl qui a ete compile sous une ancienne version de linux. Comme le labo a change de version, le programme ne fonctionne plus.
Comment faire pour recompiler ce programme sous la nouvelle version?
Merci pour votre aide
Thibaut
J'ai un programme Perl qui a ete compile sous une ancienne version de linux. Comme le labo a change de version, le programme ne fonctionne plus.
Comment faire pour recompiler ce programme sous la nouvelle version?
Merci pour votre aide
Thibaut
A voir également:
- Compilation Perl
- Breach compilation c'est quoi - Guide
- Denon perl pro test - Accueil - Audio
- Active perl - Télécharger - Édition & Programmation
- Compilation error: expected unqualified-id before '{' token ✓ - Forum C++
- Erreur de compilation projet ou bibliothèque introuvable - Forum Excel
7 réponses
Salut Thibaut31,
Perl est un langage interprété.
Pour t'assurer de la nature de ton "exécutable", à la ligne de commande tape :
file /chemin/vers/lenomdelexecutable
Si tu as un résultat du genre "ELF 32-bit executable", on est bien en présence d'un exécutable compilé pour Linux.
Si tu as un résultat "perl script text executable" alors ton "exécutable" est en fait un script ASCII contenant le source Perl, et ton problème se situe ailleurs.
Si tu as effectivement un exécutable (et non un script ASCII) encapsulant les différentes ressources nécessaires à l'exécution du programme, celui-ci a probablement été créé avec PAR Packager.
Pour recompiler le script d'origine (dont tu devras donc disposer), tu peux utiliser la dernière version de PAR Packager dans CPAN, ici :
https://metacpan.org/pod/release/SMUELLER/PAR-Packer-0.973/lib/pp.pm
Dal
Perl est un langage interprété.
Pour t'assurer de la nature de ton "exécutable", à la ligne de commande tape :
file /chemin/vers/lenomdelexecutable
Si tu as un résultat du genre "ELF 32-bit executable", on est bien en présence d'un exécutable compilé pour Linux.
Si tu as un résultat "perl script text executable" alors ton "exécutable" est en fait un script ASCII contenant le source Perl, et ton problème se situe ailleurs.
Si tu as effectivement un exécutable (et non un script ASCII) encapsulant les différentes ressources nécessaires à l'exécution du programme, celui-ci a probablement été créé avec PAR Packager.
Pour recompiler le script d'origine (dont tu devras donc disposer), tu peux utiliser la dernière version de PAR Packager dans CPAN, ici :
https://metacpan.org/pod/release/SMUELLER/PAR-Packer-0.973/lib/pp.pm
Dal
Salut,
il s'agit d'un script ou d'un fichier exécutable
afffiche le résultat de la commande
tu peux exécuter la commande perl -c /chemin/vers/ton/script pour voir les erreurs
il s'agit d'un script ou d'un fichier exécutable
afffiche le résultat de la commande
file /chemin/vers/ton/scriptAffiche aussi le résultat de la commande
perl -e 'printf "%vd\n",$^V'Si la commande file t'affiche quelque chose de genre
lami20j@debian:~/bin/my_perl_script$ file xls_create.pl xls_create.pl: perl script textalors il faut voir ton code pour depister les erreurs
tu peux exécuter la commande perl -c /chemin/vers/ton/script pour voir les erreurs
La commande file me donne :
En fait, mon probleme est que ce programme fait appel a des sous programmes (avec la fonction system()) et que l'un d'eux ne fonctionne plus sous la nouvelle version de linux.
J'ai le message d'erreur suivant :
Ce programme n'est pas modifiable ni meme consultable...
perl script text executable
En fait, mon probleme est que ce programme fait appel a des sous programmes (avec la fonction system()) et que l'un d'eux ne fonctionne plus sous la nouvelle version de linux.
J'ai le message d'erreur suivant :
/home/bic/anthonin/PET_realignment/bin/bkproj_3D_lln: error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory
Ce programme n'est pas modifiable ni meme consultable...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
L'admin veut rien savoir d'apres lui cette librairie est deja installee, et il me dit de compiler le programme avec cette version de linux.
Voila ce qu'il me met :
/usr/lib/libstdc++.so.5
/usr/lib/libstdc++.so.5.0.7
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.3
/usr/lib/libstdc++.so.5
/usr/lib/libstdc++.so.5.0.7
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.3
alors dit à ton admin que libstdc++-libc6.2-2.so.3 n'est pas installé
voilà chez moi
voilà chez moi
lami20j@debian:~$ ls -1 /usr/lib/libstdc* /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so /usr/lib/libstdc++-3-libc6.2-2-2.10.0.so /usr/lib/libstdc++-libc6.1-1.so.2 /usr/lib/libstdc++-libc6.2-2.so.3 /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.5.0.7 /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.6.0.8
Lorsque j'essaye d'executer juste le programme qui m'embete, j'ai:
Ne puis je pas dans la ligne ou j'appelle le programme specifier un emplacement de librairie qu'il utiliserait temporairement?
.../PET_realignment/bin/bkproj_3D_lln: error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared obje ct file: No such file or directory
Ne puis je pas dans la ligne ou j'appelle le programme specifier un emplacement de librairie qu'il utiliserait temporairement?
il y a aussi la commande
Je pense que nos réponses se sont croisées :)
Il semblerait que perlcc soit jugé moins fiable pour gérer toutes les dépendances, mais à vrai dire ne n'utilise pas vraiment perlcc ou pp pour des programmes en production, parce que je n'en ai pas besoin.
Mais c'est un truc intéressant à creuser sur la liste de tâches-à-faire-un-jour-quand-j'aurai-le-temps-et-l'envie :P
Dal
Je pense que nos réponses se sont croisées :)
En effet :-)
Il semblerait que perlcc soit jugé moins fiable pour gérer toutes les dépendances, mais à vrai dire ne n'utilise pas vraiment perlcc ou pp pour des programmes en production, parce que je n'en ai pas besoin.
J'avoue que je n'ai jamais utilisé pp ou perlcc et je ne pense pas non plus que je vais le faire, enfin on ne sait jamais :-))
Bonne soirée.