Hi everybody, i am trying to use the OpenCv's libraries with keil and i ve done this: 1. Added a Group called libs where i ve put al the .libs files 2. In the project configuration added all the necesary include paths ( and even more just in case ). libraries, sources, and .h paths
I have created a simple project, which compiles and works perfect without using Opencv libs
But when i try to use this libs i get this error:
Error: L6218E: Undefined symbol cvWaitKey (referred from main.o).
(CvWaitkey is defined in highgui.h which is included at the top of the main file)
It seems preety obvious that the compiler doesnt know where is defined cvWaitKey but i dont know what i am doing wrong because i ve ensured to include the highgui.h in the main file and added the include path in the project configuration.
Any idea?
Thanks!
here u have a print screen: www.mediafire.com/.../8c7v7kmakvi2f5mfg.jpg
Well if you dropped/added them to the project, then the linker should find them that way, presuming of course they are in a suitable/expected format.
Sometimes expects a helper function or two to be written by the user, in which case the function gets mentioned in the header files but there are no implementation.
But in that case that should be well documented.
I´ve wrote some dummy code for the function cvWaitKey and the code compiles perfect.
But i still can´t understand what is happening. The implementation code should be alocated in the .lib files and the libs are added to the project.
In the linker options i dont have any way to add the .lib path Maybe (as you said) once the libs are added to the project the linker should find the way to vinculate this libs to the project.
I really appreciate your help Per
Best regards
You shouldn't need to specify any library path because when you add a library to the project you specifically browse to the directory where the *.lib file is and points at the file.
And if you later browse the project, you can open the properties for the individual files and will then see a fully qualified file name for each source file or library file.
It's only for header files that you need to supply a path, since header files aren't part of the project - they are scanned for when the compiler processes the source files.
But might you have missed to add one library?
I have added all the necessary libraries but I am not sure if they are suitable for this ide. I mean this libs were created for visual studio 2005 and now i am tring to use them in keil.
Libraries are only possible to use if they has the correct file format, and are compiled for the correct processor and is compiled to use the same ABI (Application Binary Interface).
And if the library has hardware dependencies then it must also be compiled for the correct hardware platform.
That is a reason why lots of libraries are distributed in source form, so the user can rebuild the libraries using the correct compiler tool chain and after having configured the source code to match the used hardware platform.
Really thanks for your help, now i have to figure out what should i do to create my own libraries.
Why not just use the source files directly? Why use libraries at all?
I´ve been working with the source files and it´s not as easy as it seems, several functions depend of several files.