У меня есть исполняемый файл osx, который успешно работает.Когда я запускаю
nm mono | grep UNIX
на нем, я получаю следующие результаты:
U _accept$UNIX2003
U _bind$UNIX2003
U _closedir$UNIX2003
U _connect$UNIX2003
U _fwrite$UNIX2003
U _getpeername$UNIX2003
U _getsockname$UNIX2003
U _listen$UNIX2003
U _mmap$UNIX2003
U _mprotect$UNIX2003
U _munmap$UNIX2003
U _nanosleep$UNIX2003
U _opendir$UNIX2003
U _pthread_cond_timedwait$UNIX2003
U _pthread_cond_wait$UNIX2003
U _pthread_join$UNIX2003
U _recv$UNIX2003
U _recvfrom$UNIX2003
U _recvmsg$UNIX2003
U _semctl$UNIX2003
U _send$UNIX2003
U _sendmsg$UNIX2003
U _sendto$UNIX2003
U _setenv$UNIX2003
U _strftime$UNIX2003
U _unsetenv$UNIX2003
Поскольку приложение работает успешно, очевидно, что ОС способна успешно разрешать эти символы при загрузке приложения.,Я пытаюсь выяснить, какая системная библиотека определяет эти символы.
Один вероятный подозреваемый - это /usr/lib/libSystem.B.dylib, однако при запуске
nm /usr/lib/libSystem.B.dylib | grep UNIX
получаетсячтобы там не было символов с суффиксом $ UNIX2003.
Я хотел бы выяснить, где эти символы определены, в связи с проблемой сборки в отдельной программе, которая не запускается успешно, но завершается с ошибкой ввремя выполнения, потому что не удается найти _opendir $ UNIX2003.