Undefined references when compiling opencv C++ file

I'm completely new to OpenCV and I'm having trouble compiling my first program as I get undefined references to every function. I'm on Ubuntu 14.04. I've searched other similar problems and the solution seems to be including the imgcodecs library, which is already included in my program.

Here's the error I'm getting -

kettle@kettle-MacBookPro:~/opencvtutorials$ make
Scanning dependencies of target load_display
[100%] Building CXX object CMakeFiles/load_display.dir/load_display.cpp.o
Linking CXX executable load_display
CMakeFiles/load_display.dir/load_display.cpp.o: In function `main':
load_display.cpp:(.text+0x70): undefined reference to `cv::imread(cv::String const&, int)'

and many other similar undefined references.

Here's my CMakeLists.txt, in accordance with the tutorials.

cmake_minimum_required(VERSION 2.8)
project(load_display)
find_package(OpenCV REQUIRED)
add_executable(load_display load_display.cpp)
target_link_libraries(load_display ${OpenCV_LIBS})

Here's load_display.cpp -

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <string>

using namespace cv;
using namespace std;

int main( int argc, char** argv )
{
    ..code

    image = imread( imageName, IMREAD_COLOR ); // Read the file

    .. more code
}

And I'm taking the following steps to compile and run my program -

$ cmake .
$ make