undefined symbols error in c++

December 2, 2010 at 05:56:30
Specs: Macintosh
Hi!

Sorry if I'm asking a dumb question, but I've been stuck on this one for quite some time now. So, I'm trying to compile a program using cmake, that calls functions from a videosource.cpp file, with its corresponding videosource.h file.

The compiler finds the file, but when linking makes this error:

Undefined symbols:
"VideoSourceFactory::construct()", referenced from:
_main in main.cpp.o

However, in the videosource.h, the function is defined, as:

class VideoSourceFactory {
public:
VideoSourceFactory();
...}

Does anyone have an idea what can be causing this kind of errors to happen??

Thanks in advance!


See More: undefined symbols error in c++

Report •


#1
December 2, 2010 at 08:06:53
What you have in the header file is the declaration. Where's the definition?

Report •

#2
December 2, 2010 at 08:53:56
VideoSourceFactory::construct() is not VideoSourceFactory::VideoSourceFactory()

How To Ask Questions The Smart Way


Report •

#3
December 2, 2010 at 23:54:17
Hi!

Thanks for the answers. It was actually my (double) bad:
- the definition I put as an example was the wrong one, but VideoSourceFactory() was defined in the .h file
- while the directory in which the .h file was included in the project tree, the .h file itself was not explicitly linked, which caused the error.

Anyway, thanks for the quick replys!


Report •

Related Solutions

#4
December 3, 2010 at 00:04:28
That doesn't make sense. You don't link a .h file, you lnk an object file (.o). But if the definition was in the .h file, the compiled object will be in whatever .cpp file included it.

Report •


Ask Question