0
我有一個成功運行的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
由於應用程序成功地運行,顯然OS能夠在加載應用程序成功地解決這些符號。我想弄清楚哪個系統庫定義了這些符號。
一個可能的嫌疑人是/usr/lib/libSystem.B.dylib,但是,運行
nm /usr/lib/libSystem.B.dylib | grep UNIX
有變成是在那裏沒有符號與$ UNIX2003後綴時。
我想弄清楚這些符號是在哪裏定義的,涉及到一個單獨的程序的構建問題,這個問題沒有成功運行,但在運行時失敗,因爲它找不到_opendir $ UNIX2003。
很好的答案,謝謝!徹底解決了我一直在努力的問題。 – 2010-07-13 09:01:03