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;