1.) when we use any function does the lib files (containing the function) which we mention (e.g. -lcv.lib , -lhighgui.lib) in our
program in turn call the respective .dll files found in the bin
folder?does this call take place at runtime?
yes, the libs contain only information for the linker to be able to resolve the functions addressed in your exe. the actual code is loaded during runtime.
2.)whats the difference between static build and dynamic build of the lib files and dll files from the source code using CMAKE,MAKE and
Visual Studio Solution files?
none, visual studio just makes it a bit more convenient (subjectively).
3.)is the benefit of using .dll only to reduce the size of the executable code?
it is possible (if compatible with previous version e.g. interface not changed) to change the dll contents without recreating the exe.
one can also lazy load libraries (i.e. not link with a .lib file and instead use LoadLibrary/GetProcAddress) at a later point and thus one could have optional functionality in a dll and if it is there enable but still be able to run if the dll is not found.
4.)in embedded vision applications (or any embedded application using libraries) is the whole executable code dumped in the
processor/controller/chip?is there any concept of late binding or
runtime call in embedded applications?
it depends on the OS, often (at least in the embedded projects I have been involved so far) static libs are used because the OS on the embedded device doesn't support shared libraries. if the OS supports it then fine but often the hardware/software on embedded devices is very limited.