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;
总结如下
:
在代码中加入
#pragma
comment(lib,"
ws2_32
")
#pragma
comment(lib,"
libnids
")
#pragma
comment(lib,"
wpcap
")
属性->连接器->命令行
加入
ws2_32.lib libnids.lib wpcap.lib /verbose:lib /NODEFAULTLIB:libcpd.lib /NODEFAULTLIB:LIBCMT.lib