LNK2019解决思路
虽然官网给出了很多可能的原因,最可能的原因还是因为缺少某个库文件。最近解决的一个为例总结一下思路
Winmm.lib;
ad_win32.obj : error LNK2019: unresolved external symbol __imp__waveInGetErrorTextW@12 referenced in function _wavein_error
ad_win32.obj : error LNK2019: unresolved external symbol __imp__waveInAddBuffer@12 referenced in function _wavein_enqueue_buf
ad_win32.obj : error LNK2019: unresolved external symbol __imp__waveInPrepareHeader@12 referenced in function _wavein_enqueue_buf
ad_win32.obj : error LNK2019: unresolved external symbol __imp__waveInOpen@24 referenced in function _wavein_open
ad_win32.obj : error LNK2019: unresolved external symbol __imp__waveInClose@4 referenced in function _wavein_close
ad_win32.obj : error LNK2019: unresolved external symbol __imp__waveInUnprepareHeader@12 referenced in function _wavein_close
ad_win32.obj : error LNK2019: unresolved external symbol __imp__waveInGetNumDevs@0 referenced in function _ad_open_dev
ad_win32.obj : error LNK2019: unresolved external symbol __imp__waveInStart@4 referenced in function _ad_start_rec
ad_win32.obj : error LNK2019: unresolved external symbol __imp__waveInReset@4 referenced in function _ad_stop_rec
ad_win32.obj : error LNK2019: unresolved external symbol __imp__waveInStop@4 referenced in function _ad_stop_rec
1.注意出问题的地方ad_win32.obj,可以找到一个源代码文件ad_win32.c
2.打开ad_win32.c查看包含的头文件,总有一个头文件需要调用系统API,但是却没有把库文件给包含进来,凭找到最可疑的
3.根据找到的可疑.h文件对应去找.lib文件,这一步应该网上查找就可以找到
4.找到可能的缺失的库文件后在Properties--》Configuration Properties-->Linker-->input-->Additional Dependencies加入该文件,首先确定包含该库文件的文件夹已经在Library Directions目录中;另一种方法是在本源代码中以#pragma comment(lib, "openGL32.lib");的格式加入库文件
ps:网上发现的几个常见缺失库
1.ws_32.lib
2.Winmm.lib和 头文件中包含 Mmsystem.h
3. vc网络编程中遇到一个编译问题,原来是少了WSOCK32.LIB。
4.vc数据库SQL编程中遇到一个问题,原来是少了odbc32.lib
5.vc OpenCV图像处理编程中遇到一个问题,原来是少了cv.lib cvaux.lib cxcore.lib highgui.lib。
6.vc VFW视频采集编程中遇到一个问题,原来是少了VFW32.Lib