Search code examples
ccmockery

how do i use cmockery in my projects


I was searching for a way to create mocking objects with c-code until I stumbled upon cmockery. For me it seems to be the best mocking software available since it doesn't have a lot of dependencies.

I'm working in ubuntu and downloaded the tarball cmockery from https://code.google.com/p/cmockery/downloads/list

I ran the ./configure, make and make install.

I am able to execute the given examples but I just can't figure out how to get it working on my own projects. I had a look at the configure and makefile to try and find out how they did it, but that was no success. I think it's the linking that's causing my problems.

Files of cmockery can be find at:

/usr/local/include/google/cmockery.h
/usr/local/lib/libcmockery.la
/usr/local/lib/libcmockery.a
/usr/local/lib/libcmockery.so.0.0.0
/usr/local/lib/libcmockery.so.0
/usr/local/lib/libcmockery.so

I tried copying the example files calculator.c and calculater_test.c to a separate directory and compile them there. This is what I did:

gcc -c -o calculator.o calculator.c 
gcc -c -o calculator_test.o calculator_test.c -I /usr/local/include/google/
gcc -o run *.o -L /usr/local/lib/

At the last step I got a lot of undefined references to all functions specific to cmockery and the error:

collect2: error: ld returned 1 exit status

I guess I'm messing things up with the linker but I can't find anywhere how it should be done correctly.


Solution

  • You are missing -lcmockery:

    gcc -o run *.o -L /usr/local/lib/ -lcmockery