WinPCap setup giving "unresolved external symbol" linker errors - c++

I'm working with a project made professionally by someone else, so the code should be bug-free. The problems I'm having with it is most likely to do with the project configurations.
The project I'm trying to compile has C and C++ source files kept within the following folders, all within the project directory: Hardware, Header Files, Source Files, TCP/IP, uTasker and WinSim. When I attempt to compile, it returns the following build log:
1>------ Build started: Project: uTasker, Configuration: Debug Win32 ------
1>LPC17XX.obj : error LNK2019: unresolved external symbol _fnOpenDefaultHostAdapter referenced in function _fnConfigEthernet
1>WinSim.obj : error LNK2001: unresolved external symbol _iWinPcapSending
1>WinSim.obj : error LNK2019: unresolved external symbol _fnWinPcapSendPkt referenced in function _fnSimulateEthTx
1>WinSimMain.obj : error LNK2019: unresolved external symbol "void __cdecl fnDoEthereal(int,char *)" (?fnDoEthereal##YAXHPAD#Z) referenced in function _WinMain#16
1>WinSimMain.obj : error LNK2001: unresolved external symbol "int iTxActivity" (?iTxActivity##3HA)
1>WinSimMain.obj : error LNK2001: unresolved external symbol "int iRxActivity" (?iRxActivity##3HA)
1>WinSimMain.obj : error LNK2019: unresolved external symbol "void __cdecl fnWinPcapStopLink(struct HWND__ *)" (?fnWinPcapStopLink##YAXPAUHWND__###Z) referenced in function "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc##YGJPAUHWND__##IIJ#Z)
1>WinSimMain.obj : error LNK2019: unresolved external symbol "void __cdecl fnWinPcapSelectLAN(int)" (?fnWinPcapSelectLAN##YAXH#Z) referenced in function "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc##YGJPAUHWND__##IIJ#Z)
1>WinSimMain.obj : error LNK2019: unresolved external symbol "void __cdecl fnWinPcapOpenAdapter(void)" (?fnWinPcapOpenAdapter##YAXXZ) referenced in function "long __stdcall SetNIC(struct HWND__ *,unsigned int,unsigned int,long)" (?SetNIC##YGJPAUHWND__##IIJ#Z)
1>WinSimMain.obj : error LNK2019: unresolved external symbol "void __cdecl fnWinPcapClose(void)" (?fnWinPcapClose##YAXXZ) referenced in function "long __stdcall SetNIC(struct HWND__ *,unsigned int,unsigned int,long)" (?SetNIC##YGJPAUHWND__##IIJ#Z)
1>WinSimMain.obj : error LNK2019: unresolved external symbol "int __cdecl fnShowNICs(struct HWND__ *)" (?fnShowNICs##YAHPAUHWND__###Z) referenced in function "long __stdcall SetNIC(struct HWND__ *,unsigned int,unsigned int,long)" (?SetNIC##YGJPAUHWND__##IIJ#Z)
1>.\Debug\uTasker.exe : fatal error LNK1120: 11 unresolved externals
LPC17XX.c is kept within the Hardware/LPC17XX folder.
WinSim.c and WinSimMain.cpp are kept within the WinSim folder.
I'm not sure how to configure my linker to fix these problems, any help would be appreciated.
Edit: I'm using Visual Studio 2010 to build the project.

The documentation on WinPCap is a little out of date from what I've been able to find, but there are some pretty important setup instructions, particularly the pre-processor macros that should be defined to get things properly setup for a good link.
The latest setup docs I could find are here. I hope they help get you going.

Related

Unable to link QtFFmpegWrapper sample on Win7 with VS 2012

I am trying to incorporate QtFFmpegWrapper in my program, but both my program and the provided sample won't link with ffmpeg:
QVideoEncoder.obj:-1: Error: LNK2019: unresolved external symbol _avcodec_init referenced in function "protected: bool __thiscall QVideoEncoder::initCodec(void)" (?initCodec#QVideoEncoder##IAE_NXZ)
QVideoDecoder.obj:-1: Error: LNK2001: unresolved external symbol _avcodec_init
QVideoEncoder.obj:-1: Error: LNK2019: unresolved external symbol _avcodec_thread_init referenced in function "public: bool __thiscall QVideoEncoder::createFile(class QString,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int)" (?createFile#QVideoEncoder##QAE_NVQString##IIIII#Z)
QVideoEncoder.obj:-1: Error: LNK2019: unresolved external symbol _avcodec_open referenced in function "public: bool __thiscall QVideoEncoder::createFile(class QString,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int)" (?createFile#QVideoEncoder##QAE_NVQString##IIIII#Z)
and 10 or so more like these ...
Why do these pop up when linking ? The libs are all there and found, it just seems like the linker has issues with them ...
I use the following setup for my project:
Latest QtFFmpegWrapper from https://code.google.com/p/qtffmpegwrapper/
qt-opensource-windows-x86-msvc2012_opengl-5.3.0
Visual Studio 2012 Professional
Qt Creator 3.1.2
ffmpeg builds from http://ffmpeg.zeranoe.com/builds/:
ffmpeg-20140717-git-fa6716c-win32-dev
ffmpeg-20140717-git-fa6716c-win32-shared
Everything is 32Bit.

Abnormal unresolved external symbol error

I have a project that used to compile just fine, using the freetype library.
Since then my OS has been reinstalled and therefore so has Visual Studio 2010.
I have re-included and reinstalled all of the .lib .dll and header files. For some reason now if I run the program with the release configuration it runs just fine. But if I switch over to the debug config, it gives me unresolved external symbol errors from the linker, on the freetype library functions.
Now I'm sure my C++ directories for both configurations are identical as I re-set them using the all-configurations tab in the solution settings. As well as this, so are both configurations "additional directories/additional dependancies settings", set identically in the same way.
The only difference I could find between the release and debug folders in the project folder, is the presence of a file in the debug folder called "vc100.idb", which is a minimum rebuild dependancy file. This looked promising, but removing it yielded no results, so I put it back.
Do you have any ideas of what could be causing this difference between the configurations compiling?
Worst come to worst, I can continue programming on the release config, but I'd rather not continue down this road as I'd really like to know the root of this problem.
Thanks in advance,
Guy
The errors:
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Glyph_To_Bitmap referenced in function "void __cdecl freetype::make_dlist(struct FT_FaceRec_ *,char,unsigned int,unsigned int *)" (?make_dlist#freetype##YAXPAUFT_FaceRec_##DIPAI#Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Get_Glyph referenced in function "void __cdecl freetype::make_dlist(struct FT_FaceRec_ *,char,unsigned int,unsigned int *)" (?make_dlist#freetype##YAXPAUFT_FaceRec_##DIPAI#Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Load_Glyph referenced in function "void __cdecl freetype::make_dlist(struct FT_FaceRec_ *,char,unsigned int,unsigned int *)" (?make_dlist#freetype##YAXPAUFT_FaceRec_##DIPAI#Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Get_Char_Index referenced in function "void __cdecl freetype::make_dlist(struct FT_FaceRec_ *,char,unsigned int,unsigned int *)" (?make_dlist#freetype##YAXPAUFT_FaceRec_##DIPAI#Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Done_FreeType referenced in function "public: void __thiscall freetype::font_data::init(char const *,unsigned int)" (?init#font_data#freetype##QAEXPBDI#Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Done_Face referenced in function "public: void __thiscall freetype::font_data::init(char const *,unsigned int)" (?init#font_data#freetype##QAEXPBDI#Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Set_Char_Size referenced in function "public: void __thiscall freetype::font_data::init(char const *,unsigned int)" (?init#font_data#freetype##QAEXPBDI#Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_New_Face referenced in function "public: void __thiscall freetype::font_data::init(char const *,unsigned int)" (?init#font_data#freetype##QAEXPBDI#Z)
1>freetype.obj : error LNK2019: unresolved external symbol _FT_Init_FreeType referenced in function "public: void __thiscall freetype::font_data::init(char const *,unsigned int)" (?init#font_data#freetype##QAEXPBDI#Z)
Edit: OK well this is strange. I've removed ALL of the freetype directory information rom the include and library directory setting in the release config, as well as the additional dependancies. And the released config version still works!
This is leading me to believe there is something missing (vs config-wise) from moving my files over.
I had the same problem.
I solved it by compiling the freetype( freetype-2.5.2\builds\windows\vc2010\freetype.sln ) solution for the x64 platform (or win32 if you use it).
You will get the .libs for this platform.

Error when building a project in VC++ 2010 Express [duplicate]

This question already has answers here:
Linker error LNK2019 from 3rd party library
(3 answers)
Closed 10 years ago.
I tried to see what is the problem(s) related to those error messages. I tried to check everything but still, I'm not finding the source of the error.
According to you, the obj error followed by error LNK2019: unresolved external symbol imp__is_CaptureVideo referenced in function, what is its provenance?
I'm using Visual Express C++ 2010.
Thank you.
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_CaptureVideo referenced in function "private: void __thiscall CIdsSimpleLiveDlg::OnButtonStart(void)" (?OnButtonStart#CIdsSimpleLiveDlg##AAEXXZ)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_StopLiveVideo referenced in function "private: void __thiscall CIdsSimpleLiveDlg::OnButtonStop(void)" (?OnButtonStop#CIdsSimpleLiveDlg##AAEXXZ)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_SetImageMem referenced in function "private: void __thiscall CIdsSimpleLiveDlg::OnBnClickedButtonLoadParameter(void)" (?OnBnClickedButtonLoadParameter#CIdsSimpleLiveDlg##AAEXXZ)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_AllocImageMem referenced in function "private: void __thiscall CIdsSimpleLiveDlg::OnBnClickedButtonLoadParameter(void)" (?OnBnClickedButtonLoadParameter#CIdsSimpleLiveDlg##AAEXXZ)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_SetColorMode referenced in function "private: void __thiscall CIdsSimpleLiveDlg::OnBnClickedButtonLoadParameter(void)" (?OnBnClickedButtonLoadParameter#CIdsSimpleLiveDlg##AAEXXZ)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_AOI referenced in function "private: void __thiscall CIdsSimpleLiveDlg::OnBnClickedButtonLoadParameter(void)" (?OnBnClickedButtonLoadParameter#CIdsSimpleLiveDlg##AAEXXZ)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_FreeImageMem referenced in function "private: void __thiscall CIdsSimpleLiveDlg::OnBnClickedButtonLoadParameter(void)" (?OnBnClickedButtonLoadParameter#CIdsSimpleLiveDlg##AAEXXZ)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_ParameterSet referenced in function "private: void __thiscall CIdsSimpleLiveDlg::OnBnClickedButtonLoadParameter(void)" (?OnBnClickedButtonLoadParameter#CIdsSimpleLiveDlg##AAEXXZ)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_EnableMessage referenced in function "private: bool __thiscall CIdsSimpleLiveDlg::OpenCamera(void)" (?OpenCamera#CIdsSimpleLiveDlg##AAE_NXZ)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_GetSensorInfo referenced in function "private: bool __thiscall CIdsSimpleLiveDlg::OpenCamera(void)" (?OpenCamera#CIdsSimpleLiveDlg##AAE_NXZ)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_RenderBitmap referenced in function "private: long __thiscall CIdsSimpleLiveDlg::OnUEyeMessage(unsigned int,long)" (?OnUEyeMessage#CIdsSimpleLiveDlg##AAEJIJ#Z)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_ExitCamera referenced in function "private: void __thiscall CIdsSimpleLiveDlg::ExitCamera(void)" (?ExitCamera#CIdsSimpleLiveDlg##AAEXXZ)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_GetColorDepth referenced in function "private: int __thiscall CIdsSimpleLiveDlg::InitDisplayMode(void)" (?InitDisplayMode#CIdsSimpleLiveDlg##AAEHXZ)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_SetDisplayMode referenced in function "private: int __thiscall CIdsSimpleLiveDlg::InitDisplayMode(void)" (?InitDisplayMode#CIdsSimpleLiveDlg##AAEHXZ)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_GetDuration referenced in function "private: int __thiscall CIdsSimpleLiveDlg::InitCamera(unsigned long *,struct HWND__ *)" (?InitCamera#CIdsSimpleLiveDlg##AAEHPAKPAUHWND__###Z)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_InitCamera referenced in function "private: int __thiscall CIdsSimpleLiveDlg::InitCamera(unsigned long *,struct HWND__ *)" (?InitCamera#CIdsSimpleLiveDlg##AAEHPAKPAUHWND__###Z)
1>IdsSimpleLiveDlg.obj : error LNK2019: unresolved external symbol __imp__is_ImageFormat referenced in function "private: void __thiscall CIdsSimpleLiveDlg::GetMaxImageSize(int *,int *)" (?GetMaxImageSize#CIdsSimpleLiveDlg##AAEXPAH0#Z)
1>nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv
1>nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argc
1>C:\Program Files\IDS\uEye\Develop\Source\SimpleLive\Debug\po.exe : fatal error LNK1120: 19 unresolved externals
I have added the correspondent library by clicking on the properties
of my project and then, adding the directory to the Library Directories
It seems like you've added the 'Additional Library Directory' to your VS Project - but didn't link the actual library file (windows extension: .lib). I think what you did is
Project Properties -> Configuration Properties-> Linker -> General -> Additional Library Directories
and added the directoy where your 3rd party '.lib' is inside. But in fact this doesn't link against that '.lib' file by itself (it just added the directory where VS is searching for the linked .lib files).
Try the following:
Right click on your project -> Project Properties -> Configuration Properties-> Linker -> Input -> Additional Dependencies
There is a list like:
'kernel32.lib;user32.lib;...;%(AdditionalDependencies)'
And somewehere inside there should the name of your '.lib file' appear. If it doesn't, you've to add it there. I.e. if the lib of your 3rd party library is named 'myLib.lib' you would insert there instead
'kernel32.lib;user32.lib;...;myLib.lib;%(AdditionalDependencies)'

unresolved external symbol in eclipse cdt

I try to build cpp file using eclipse cdt. Linker throws "unresolved external symbol", however path to lib file that contains implementation for function is listed in LIB environment variable on Project properties->C/C++ Build->Environment
What am I doing wrong?
UPD I try to build file. There is lib RpcRT4.Lib on the path C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\
And linker fails:
**** Build of configuration Debug for project test cpp ****
**** Internal Builder is used for build ****
link /debug /nologo /OUT:test cpp.exe main.obj
main.obj : error LNK2019: unresolved external symbol __imp__RpcStringFreeA#4 referenced in function "bool __cdecl Initialize_CreateWindowClass(void)"(?Initialize_CreateWindowClass##YA_NXZ)
main.obj : error LNK2019: unresolved external symbol __imp__RegisterClassA#4 referenced in function "bool __cdecl Initialize_CreateWindowClass(void)" (?Initialize_CreateWindowClass##YA_NXZ)
main.obj : error LNK2019: unresolved external symbol __imp__UuidToStringA#8 referenced in function "bool __cdecl Initialize_CreateWindowClass(void)" (?Initialize_CreateWindowClass##YA_NXZ)
main.obj : error LNK2019: unresolved external symbol __imp__UuidCreate#4 referenced in function "bool __cdecl Initialize_CreateWindowClass(void)" (?Initialize_CreateWindowClass##YA_NXZ)
main.obj : error LNK2019: unresolved external symbol __imp__DefWindowProcA#16 referenced in function "long __stdcall SkypeAPITest_Windows_WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?SkypeAPITest_Windows_WindowProc##YGJPAUHWND__##IIJ#Z)
main.obj : error LNK2019: unresolved external symbol __imp__PostQuitMessage#4 referenced in function "long __stdcall SkypeAPITest_Windows_WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?SkypeAPITest_Windows_WindowProc##YGJPAUHWND__##IIJ#Z)
main.obj : error LNK2019: unresolved external symbol __imp__UnregisterClassA#8 referenced in function "void __cdecl DeInitialize_DestroyWindowClass(void)" (?DeInitialize_DestroyWindowClass##YAXXZ)
main.obj : error LNK2019: unresolved external symbol __imp__CreateWindowExA#48 referenced in function "bool __cdecl Initialize_CreateMainWindow(void)" (?Initialize_CreateMainWindow##YA_NXZ)
main.obj : error LNK2019: unresolved external symbol __imp__DestroyWindow#4 referenced in function "void __cdecl DeInitialize_DestroyMainWindow(void)" (?DeInitialize_DestroyMainWindow##YAXXZ)
main.obj : error LNK2019: unresolved external symbol __imp__DispatchMessageA#4 referenced in function "void __cdecl Global_MessageLoop(void)" (?Global_MessageLoop##YAXXZ)
main.obj : error LNK2019: unresolved external symbol __imp__TranslateMessage#4 referenced in function "void __cdecl Global_MessageLoop(void)" (?Global_MessageLoop##YAXXZ)
main.obj : error LNK2019: unresolved external symbol __imp__GetMessageA#16 referenced in function "void __cdecl Global_MessageLoop(void)" (?Global_MessageLoop##YAXXZ)
main.obj : error LNK2019: unresolved external symbol __imp__PostMessageA#16 referenced in function "void __cdecl Global_InputProcessingThread(void *)" (?Global_InputProcessingThread##YAXPAX#Z)
main.obj : error LNK2019: unresolved external symbol __imp__SendMessageA#16 referenced in function "void __cdecl Global_InputProcessingThread(void *)" (?Global_InputProcessingThread##YAXPAX#Z)
main.obj : error LNK2019: unresolved external symbol __imp__RegisterWindowMessageA#4 referenced in function _main
test cpp.exe : fatal error LNK1120: 15 unresolved externals
Build error occurred, build is stopped
Time consumed: 2438 ms.
And environment settings for project
I'm not entirely clear on whether you've already done this based on the question, but just adding the directory to your linker's search path isn't enough for any compiler/linker I've ever used. There could be hundreds of different libraries in there, even different versions of the same library, and the linker has no idea which ones you do and don't want. You need to tell it, explicitly, to link against the library using the appropriate parameter.
It looks like you're using the Microsoft linker, which I've never used, so I can't help you with the specific flag but it should be easy enough to find what it is in the documentation if that's the issue. I presume Eclipse has a method of specifying this in the GUI as well which should be generic across the various compilers it supports.

Unresolved external symbols in Visual Studio 2010

I am coming from Xcode, trying to compile a project in Visual Studio 2010, and I get the following errors:
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "struct _GUID __cdecl CLEyeGetCameraUUID(int)" (?CLEyeGetCameraUUID##YA?AU_GUID##H#Z) referenced in function "public: static int __cdecl ofxCLeye::listDevices(void)" (?listDevices#ofxCLeye##SAHXZ)
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "int __cdecl CLEyeGetCameraCount(void)" (?CLEyeGetCameraCount##YAHXZ) referenced in function "public: static int __cdecl ofxCLeye::listDevices(void)" (?listDevices#ofxCLeye##SAHXZ)
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "bool __cdecl CLEyeCameraGetFrameDimensions(void *,int &,int &)" (?CLEyeCameraGetFrameDimensions##YA_NPAXAAH1#Z) referenced in function "public: void __thiscall ofxCLeye::grabFrame(void)" (?grabFrame#ofxCLeye##QAEXXZ)
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "bool __cdecl CLEyeCameraGetFrame(void *,unsigned char *,int)" (?CLEyeCameraGetFrame##YA_NPAXPAEH#Z) referenced in function "public: void __thiscall ofxCLeye::grabFrame(void)" (?grabFrame#ofxCLeye##QAEXXZ)
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "bool __cdecl CLEyeDestroyCamera(void *)" (?CLEyeDestroyCamera##YA_NPAX#Z) referenced in function "public: virtual void __thiscall ofxCLeye::close(void)" (?close#ofxCLeye##UAEXXZ)
2>ofxCLeye.obj : error LNK2019: unresolved external symbol "bool __cdecl CLEyeCameraStop(void *)" (?CLEyeCameraStop##YA_NPAX#Z) referenced in function "public: virtual void __thiscall ofxCLeye::close(void)" (?close#ofxCLeye##UAEXXZ)
... etc etc...
2>bin\clEye_debug.exe : fatal error LNK1120: 10 unresolved externals
I imagine that the compiler is trying to link CLEyeMulticam.lib but not finding it. I think that I have configured it properly.
Could you point me with the needed steps to include a library in VS2010 ?
Thank you,
marc
Apologies if this is overly pedantic. If this is a pre-built library (not built as part of the project/solution) then make sure you
a) #include the correct header
b) #define any requisite macros
c) speciy additional .lib dependencies as shown below.
You will need to specify a fully qualifed path (d:\src\project\libs\camera.lib) unless the libary file is in the LIB environment variable.
In the Property Pages for your project, navigate to Configuration > Linker > Input and add the lib file to the Additional Dependencies setting. This applies to VC++ 2008, probably likewise to 2010.