LIBNIDS編譯錯(cuò)誤解決方案
1.??????
error LNK2019:
無法解析的外部符號(hào) _inet_ntoa@4 ,該符號(hào)在函數(shù) _adres 中被引用
需要加入
ws2_32.lib
2.??????
error LNK2019:
無法解析的外部符號(hào) "int __cdecl nids_init(void)" (?nids_init@@YAHXZ) ,該符號(hào)在函數(shù) _main 中被引用
改寫
nids.h
在函數(shù)前加入
#ifdef __cplusplus
extern "C"
{
#endif
在函數(shù)后加入
#ifdef __cplusplus
}
#endif
3.????????
libnids.lib(libnids.obj) : error LNK2019:
無法解析的外部符號(hào)
_pcap_datalink
,該符號(hào)在函數(shù)
_nids_init
中被引用。。。。。。。。。。。。
需要加入
wpcap.lib
4.????????
LIBCMT.lib(close.obj) : error LNK2005: __close
已經(jīng)在
LIBCD.lib(close.obj)
中定義。。。。。。。。。
解決方案屬性
-
〉鏈接器
-
〉輸入
-
〉忽略指定庫
LIBCMT.lib
而不是
LIBCD.lib
Libcd.lib
為
DEBUG
版本
libc.lib
為
Release
版本得
5.???????
error LNK2019:
無法解析的外部符號(hào) _nids_run ,該符號(hào)在函數(shù) _main 中被引用
需要加入
libnids.lib
6.????????
error LNK2001:
無法解析的外部符號(hào) "char * nids_errbuf" (?nids_errbuf@@3PADA)
僅出現(xiàn)此錯(cuò)誤的時(shí)候參考一下內(nèi)容
C
++
的全局常量只有靜態(tài)連接性能。這不同于
C
,如果試圖在
C
++的多個(gè)文件內(nèi)使用全局變量也會(huì)產(chǎn)生
LNK2001
錯(cuò)誤。
l????????
一種解決的方法是需要時(shí)在頭文件中加入該常量的初始化代碼,并在
.CPP
文件中包含該頭文件;
l????????
另一種方法是使用時(shí)給該變量賦以常數(shù)。
改寫
nids.h
extern char nids_errbuf[]="";
7.????????
error LNK2001:
無法解析的外部符號(hào) "struct nids_prm nids_params" (?nids_params@@3Unids_prm@@A)
需要在源碼文件中加入
struct nids_prm nids_params;
總結(jié)如下
:
在代碼中加入
#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
posted on 2006-09-29 12:30 JeromeWen 閱讀(2197) 評(píng)論(2) 編輯 收藏 引用