Компилятор Фортрана не работает, и я думаю, что это своего рода проблема PATH.
Я использую MacOS Mojave 10.14.5.Я пытался запустить фортран-код, полученный от кого-то другого.Он скомпилирован нормально, но при запуске я получил ошибку.Сначала это была ошибка сегментации, поэтому я не был уверен, что не так.Но я на 90% уверен, что код не так, потому что он был запущен другим человеком.Но компиляция и запуск простого кода, такого как HelloWorld, прошел нормально.
Я обнаружил, что мой gfortran использует версию anaconda (4.8.5?), Поэтому я изменил его на версию Homebrew (9.1.0) для редактирования файла bashrc.После этого (я не уверен, что именно изменило проблему. Я пробовал много вещей, которые могу найти в Google, например переустановку gcc. Возможно, я перепутал пути), мой компилятор fortran не смог скомпилировать даже код HelloWorld.
PRINT *, "Hello World!"
END
.
(base) dyn-137-229-27-249:~ jjung11$ gfortran hello.f90 -o hello
ld: warning: ignoring file /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd, file was built for unsupported file format ( 0x2D 0x2D 0x2D 0x20 0x21 0x74 0x61 0x70 0x69 0x2D 0x74 0x62 0x64 0x2D 0x76 0x33 ) which is not the architecture being linked (x86_64): /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd
ld: warning: ignoring file /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libm.tbd, file was built for unsupported file format ( 0x2D 0x2D 0x2D 0x20 0x21 0x74 0x61 0x70 0x69 0x2D 0x74 0x62 0x64 0x2D 0x76 0x33 ) which is not the architecture being linked (x86_64): /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libm.tbd
ld: symbol dyld_stub_binder not found (normally in libSystem.dylib). Needed to perform lazy binding to function __gfortran_set_args for architecture x86_64
collect2: error: ld returned 1 exit status
В нем говорится, что мне нужно выполнить ленивое связывание, но я понятия не имею, что это значит, и, хотя я погуглил, я не смог научиться это делать.
Также ошибка, которую я видел много раз, пытаясь запустить мой собственный код, заключается в следующем:
(base) dyn-137-229-27-249:~ jjung11$ /Volumes/easystore/code/mhdread_sc ; exit;
dyld: Library not loaded: /sasbuild/local/xmac01/GNU_CC_CXX_7.1/gcc_7.1.0/lib/libgfortran.4.dylib
Referenced from: /Volumes/easystore/code/mhdread_sc
Reason: image not found
Abort trap: 6
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
[Process completed]
Я пытался изменить путь к dyld, но безуспешно.На самом деле я понятия не имею о том, что это значит.
Ошибка, которую я получаю для своего собственного кода в настоящее время, выглядит следующим образом:
/Volumes/easystore/code/mhdread_sc -grid ../openggcm_run/2008Jun28_002/2008Jun28_002.grid -fin ../openggcm_run/2008Jun28_002/target/2008Jun28_002.3df. -diptime 2008:06:28:10:00:0.000 -fth 2008Jun28_002.TB_GSEorbit.mhd -fsc TB.GSE.orbit -t0 3600 -tt 43200 -dt 60
test
3600
At line 55 of file mhdread_sc.f
Internal Error: get_unit(): Bad internal unit KIND
На самом деле, хотя я боролся с этой проблемойв течение нескольких дней я только начинающий в программировании (Brew / Xcode / PATH / bashrc / mac), поэтому, пожалуйста, будьте добры к решению.Я могу не понять, если это сложно.
Редактировать - новая ошибка
(base) dyn-137-229-27-249:~ jjung11$ which gfortran -a
/usr/local/bin/gfortran
(base) dyn-137-229-27-249:~ jjung11$ gfortran -o hello.f90 hello
ld: can't link with a main executable file 'hello' for architecture x86_64
collect2: error: ld returned 1 exit status