SharpPcap在CentOS 64 Mono环境System.EntryPointNotFoundException错误的解决方法

    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的定义在文件

https://github.com/mono/mono/blob/master/mcs/class/Mono.Posix/Mono.Unix.Native/Syscall.cs

[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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值