ld: символ dyld_stub_binder не найден (обычно в libSystem.dylib) - PullRequest
0 голосов
/ 11 июня 2019

Компилятор Фортрана не работает, и я думаю, что это своего рода проблема 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

1 Ответ

0 голосов
/ 13 июня 2019

Похоже, что существуют конфликтующие версии компиляторов и / или библиотек времени выполнения.

Удалите настройку анаконды из ~/.bashrc.

Затем убедитесь, что «инструменты разработчика», предоставляемые Apple, актуальны, обновите homebrew, обновите установку gcc / gfortran с homebrew. Если это не работает, я не могу придумать способы диагностики и / или удаленного исправления установки.

...