LIBNIDS Windows下编译错误解决方案

1.       error LNK2019: 无法解析的外部符号 _inet_ntoa@4 ,该符号在函数 _adres 中被引用

需要加入 ws2_32.lib

2.       error LNK2019: 无法解析的外部符号 "int __cdecl nids_init(void)" (?nids_init@@YAHXZ) ,该符号在函数 _main 中被引用

改写 nids.h

在函数前加入

#ifdef __cplusplus

extern "C"

{

#endif

在函数后加入

#ifdef __cplusplus

}

#endif

3.         libnids.lib(libnids.obj) : error LNK2019: 无法解析的外部符号 _pcap_datalink ,该符号在函数 _nids_init 中被引用。。。。。。。。。。。。

需要加入 wpcap.lib

4.         LIBCMT.lib(close.obj) : error LNK2005: __close 已经在 LIBCD.lib(close.obj) 中定义。。。。。。。。。

解决方案属性 - 〉链接器 - 〉输入 - 〉忽略指定库 LIBCMT.lib 而不是 LIBCD.lib

Libcd.lib 为 DEBUG 版本 libc.lib 为 Release 版本得

 

 

 

5.        error LNK2019: 无法解析的外部符号 _nids_run ,该符号在函数 _main 中被引用

需要加入 libnids.lib

6.         error LNK2001: 无法解析的外部符号 "char * nids_errbuf" (?nids_errbuf@@3PADA)

仅出现此错误的时候参考一下内容

C ++ 的全局常量只有静态连接性能。这不同于 C ,如果试图在 C ++的多个文件内使用全局变量也会产生 LNK2001 错误。

l         一种解决的方法是需要时在头文件中加入该常量的初始化代码,并在 .CPP 文件中包含该头文件;

l         另一种方法是使用时给该变量赋以常数。

改写 nids.h

extern char nids_errbuf[]="";

7.         error LNK2001: 无法解析的外部符号 "struct nids_prm nids_params" (?nids_params@@3Unids_prm@@A)

需要在源码文件中加入 struct nids_prm nids_params;

转载于:https://www.cnblogs.com/feihuaxx/p/3604727.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值