文章出處

SharpPcap 是一個.NET 環境下的網絡包捕獲框架,基于著名的 pcap/WinPcap 庫開發。提供了捕獲、注入、分析和構建的功能,SharpPcap 還是一個跨平臺的庫,可以在Mono/.NET下運行,詳細內容可以看http://www.codeproject.com/Articles/12458/SharpPcap-A-Packet-Capture-Framework-for-NET ,本文的內容是SharpPcap在Mono 的CentOS 64上運行發生錯誤:
Mono.Unix.Native.Syscall ---> System.EntryPointNotFoundException: Mono_Posix_Syscall_get_at_fdcwd 的解決方法:

1、在64位服務器上編譯Mono時,加個選項 --libdir=/usr/lib64, Mono的編譯選項如下:

 ./configure --prefix=/usr/ --libdir=/usr/lib64
make 
make install
2、將/usr/lib64 加入 /etc/ld.so.conf,然后運行 ldconfig 生成 /etc/ld.so.cache。 ld.so 加載共享庫的時候,會從 ld.so.cache 查找。
 
Mono_Posix_Syscall_get_at_fdcwd的定義在文件
 
[DllImport (MPH, SetLastError=true,
EntryPoint="Mono_Posix_Syscall_get_at_fdcwd")]
private static extern int get_at_fdcwd ();
 
public static readonly int AT_FDCWD = get_at_fdcwd ();
 
是一個P/Invoke ,具體參考文章 Mono P/Invoke :DLLImport

文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()