2009-12-28 6 views
2

Le code Fortran suivant me donne une erreur de bus sur mon Mac, mais pas d'erreurs quand je le lance sur ma machine Linux:erreur de bus Fortran sur mac

PROGRAM TINY 
    WRITE(UNIT=*, FMT=*) 'Hello, world!' 
    END 

Ma compréhension est qu'une erreur de bus se produit lorsque le programme tente d'accéder à la mémoire impossible, mais je ne comprends pas où une telle tentative a été faite dans ce programme. Mon MacBook a GCC 4.4.0 et ma machine Linux a GCC 4.3.2. Des idées sur la raison pour laquelle cette erreur se produit?

Répondre

1

Aucune idée du tout, je pensais que je vous ferais savoir que je n'ai aucun problème à compiler et exécuter le programme sur mon Mac Pro. J'ai compilé avec G95 (GCC 4.0.4 (g95 0.91!) Dec 11 2008). Comme vous, je pense qu'une erreur de bus est généralement une tentative d'adresse de mémoire qui n'existe pas.

+0

erreur de bus signifie essayer d'écrire dans la mémoire programme – JoelFan

+0

"erreur de bus" est causée par un accès à une adresse physiquement illégale - voir http://en.wikipedia.org/wiki/Bus_error. En revanche, une "erreur de segmentation" est généralement provoquée par l'accès à une adresse qui existe, mais à laquelle le programme n'est pas autorisé à accéder - voir http://en.wikipedia.org/wiki/Segmentation_fault. Essayer d'écrire dans la mémoire du programme provoquerait probablement une erreur de segmentation. Cela dépend du système d'exploitation, etc. –

+0

oups, désolé ... devrais-je supprimer mon commentaire? – JoelFan

0

Le programme fonctionne correctement sur mon Mac avec gfortran 4.4.2. Est-ce que d'autres programmes Fortran fonctionnent sur votre MacBook ou ont-ils tous ce problème?

Questions connexes