2009-12-28 2 views
2

Следующая Fortran код дает мне ошибку шины на моем Mac, но без ошибок, когда я запустить его на моей Linux машине:Fortran ошибка шины на макинтош

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

Мое понимание, что происходит ошибка шины, когда программа пытается получить доступ к невозможной памяти, но я не понимаю, где такая попытка была сделана в этой программе. Мой MacBook имеет GCC 4.4.0, а моя Linux-машина имеет GCC 4.3.2. Любые идеи относительно того, почему эта ошибка возникает?

ответ

1

Нет идей вообще, просто подумал, что я дам вам знать, что у меня нет проблем с компиляцией и запуском программы на моем Mac Pro. Я скомпилирован с G95 (GCC 4.0.4 (g95 0.91!) 11 декабря 2008 г.). Как и вы, я думаю, что ошибка шины обычно является попыткой адресовать память, которая не существует.

+0

Ошибка шины означает попытку записать в память программы – JoelFan

+0

«Ошибка шины» вызвана доступом к физически незаконному адресу - см. Http://en.wikipedia.org/wiki/Bus_error. Напротив, «ошибка сегментации» обычно возникает из-за доступа к адресу, который существует, но к которому программе не разрешен доступ - см. Http://en.wikipedia.org/wiki/Segmentation_fault. Попытка записать в память программы скорее приведет к ошибке сегментации. Это зависит от операционной системы и т. Д. –

+0

oops, извините ... я должен удалить свой комментарий? – JoelFan

0

Программа отлично работает на моем Mac с gfortran 4.4.2. Выполняют ли другие программы Fortran на вашем MacBook, или все они имеют эту проблему?

Смежные вопросы