No such file étrange

No such file étrange - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 03-07-2006 à 00:13:09    

Bonsoir,

$ ./test_i386
bash: ./test_i386: No such file or directory
$ ls -l ./test_i386
-rwxr-xr-x 1 moi moi 1428 2006-07-02 23:05 ./test_i386


 
Intrigant, non ? J'ai voulu assembler du code C avec gcc -S puis le compiler avec as et le linker avec ld, mais ça me donne cette erreur.  
 
Avez-vous une explication ?


---------------
A savoir : la dimension de Hausdorff du chou-fleur a été calculée et vaut 2.33
Reply

Marsh Posté le 03-07-2006 à 00:13:09   

Reply

Marsh Posté le 03-07-2006 à 00:22:10    

tu pourrais montrer le contenu du dit fichier ?

Reply

Marsh Posté le 03-07-2006 à 00:31:18    

dr-freuderick a écrit :

tu pourrais montrer le contenu du dit fichier ?


C'est un fichier tout con qui s'exécute bien en passant par gcc directement ( gcc test_i386.c && ./a.out ).
 


int main() {
    printf("i386=%d\n", i386);
}



Message édité par Photonium le 03-07-2006 à 00:34:16

---------------
A savoir : la dimension de Hausdorff du chou-fleur a été calculée et vaut 2.33
Reply

Marsh Posté le 03-07-2006 à 01:23:44    

Photonium a écrit :

Bonsoir,

$ ./test_i386
bash: ./test_i386: No such file or directory
$ ls -l ./test_i386
-rwxr-xr-x 1 moi moi 1428 2006-07-02 23:05 ./test_i386


 
Intrigant, non ? J'ai voulu assembler du code C avec gcc -S puis le compiler avec as et le linker avec ld, mais ça me donne cette erreur.  
 
Avez-vous une explication ?

Visiblement, ton programme n'a pas de point d'entrée correct, certainement parce que tu n'as pas appellé ld avec les bons arguments. Ceux-ci dépendent fortement du compilateur et de la plateforme, et c'est pourquoi il ne faut pas utiliser ld sauf dans de très rares cas (genre programme de très bas niveau).
 
Heureusement, gcc résout très bien ce problème, donc utilise le :o  
 
Si toutefois, par curiosité, tu veux voir ce que gcc fait avec ld, c'est facile ; il suffit d'appeller gcc avec le flag -v :

% gcc ton_fichier_objet -v -o test_i386


Reply

Marsh Posté le 03-07-2006 à 13:02:04    

Pillow a écrit :

Visiblement, ton programme n'a pas de point d'entrée correct, certainement parce que tu n'as pas appellé ld avec les bons arguments. Ceux-ci dépendent fortement du compilateur et de la plateforme, et c'est pourquoi il ne faut pas utiliser ld sauf dans de très rares cas (genre programme de très bas niveau).
 
Heureusement, gcc résout très bien ce problème, donc utilise le :o


Je voulais simplement faire le con avec as et la sortie assembleur de gcc ...  :ange: D'ailleurs, il est vrai qu'auparavant il avait gueuler pour un _start introuvable  :D  

Pillow a écrit :


Si toutefois, par curiosité, tu veux voir ce que gcc fait avec ld, c'est facile ; il suffit d'appeller gcc avec le flag -v :

% gcc ton_fichier_objet -v -o test_i386



 
Ca m'a l'air très bourrin. Il met des tonnes d'arguments... Pas vraiment instructif au premier abord...  
 
Merci quand même pour la réponse


---------------
A savoir : la dimension de Hausdorff du chou-fleur a été calculée et vaut 2.33
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed