나는 성공적으로 실행되는 osx 실행 파일을 가지고있다. 응용 프로그램이 성공적으로 실행되기 때문에 분명히 OS는 응용 프로그램을로드 할 때 성공적으로 이러한 기호를 해결할 수있는,
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
: 나는 그것에
nm mono | grep UNIX
를 실행하면, 나는이 결과를 얻을 수 있습니다. 이 기호를 정의하는 시스템 라이브러리를 파악하려고합니다. 이
nm /usr/lib/libSystem.B.dylib | grep UNIX
$는 Unix2003 접미사가에는 문자 수 없습니다 판명를 실행할 때
한 가능성이 용의자는, 그러나, /usr/lib/libSystem.B.dylib입니다.
이 기호가 정의 된 위치를 확인하고 싶습니다. 실행되지 않는 별도의 프로그램에서 빌드 문제와 관련하여 _opendir $ UNIX2003을 찾을 수 없기 때문에 런타임에 실패합니다.
위대한 답변, 감사합니다! 나는 지금 당장 일해온 문제를 완전히 해결합니다. –