#ssh #fortran #gfortran
#ssh #fortran #gfortran
Вопрос:
Я скомпилировал фрагмент кода Fortran, и выполнение на моем компьютере работает идеально. Однако я скопировал исполняемый файл на удаленный сервер и попытался выполнить его через SSH. Возникла следующая ошибка:
-bash: ./ex2.exe: cannot execute binary file: Exec format error
Я посмотрел uname -m в терминале с одинаковыми результатами как для моей собственной машины, так и для удаленной:
x86_64
Мой собственный код работает отлично, и я просто хочу иметь возможность выполнить его на удаленном сервере. Для его компиляции я использовал:
gfortran -O3 -o isingmodel.exe isingmodel.f
Я должен упомянуть, что на удаленном сервере нет gfortran, поэтому я не могу загрузить файл .f и скомпилировать его на сервере.
Комментарии:
1. Это не имеет ничего общего с или ssh и мало связано конкретно с Fortran. Вы должны сообщить нам точную конфигурацию как вашего компьютера, так и вашего сервера. Как можно точнее. Аппаратное и программное обеспечение. Операционная система, компилятор, 32-разрядный или 64-разрядный, все имеет значение. Я надеюсь, что ваш компьютер, по крайней мере, работает под управлением Linux. Скорее всего, вам все равно придется установить gfortran на свой сервер.
2. У меня MacBook Air под управлением OSX с 64-разрядным Core i5. Удаленный сервер работает под управлением Ubuntu версии # 168-Ubuntu SMP Ср. 16 янв. 21:00:45 UTC 2019 и также 64-разрядный. Я только что понял, что на удаленном сервере установлен gcc, поэтому он должен включать gfortran, верно?
3. Вы не можете использовать двоичный файл macOS в Linux. Вы должны установить компилятор Fortran на компьютер с Linux. Любой доступный компилятор.
4. Ваша ситуация «нормальная». Если вы подключаетесь по ssh к другому компьютеру, этим другим компьютером может управлять ИТ-персонал, обратитесь к ним за поддержкой.
5. Возможный способ справиться с этим: получить эмулятор (должен подойти VirtualBox ). Установите ту же версию Linux в эмулятор, с gfortran. Скомпилируйте свою программу как статический исполняемый файл (или альтернативно найдите все зависимости и скопируйте их вместе с вашей программой). Обратите внимание, что наличие gcc не обязательно означает, что gfortran доступен (это другой пакет). Лучший способ — попросить ЕГО установить gfortran (но я знаю по опыту, что иногда это неохотно).