Good day,
here is my code

```
#include <iostream>
#include <Magick++.h>
using namespace std;
using namespace Magick;
int main(int argc, char **argv) {
  InitializeMagick(*argv);
  Image image;
  try {
    image.read(argv[1]);
  } 
  catch( Exception &error_ ) {
    cout << "Caught exception: " << error_.what() << endl; 
      return 1; 
  } 
  int x = image.columns();
  cout<<"your picture's width is "<< x << "px"<<endl;
  return 0; 
}

```

I use KDevelop(which uses CMake as builder), 
when I try to compile the app, it throws me an error

> 
> main.cpp:25: undefined reference to `Magick::Image::columns() const'
> 
> 
> 

Here's what my CMakeLists.txt contains.

```
cmake_minimum_required(VERSION 3.5)
project(hello)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)

add_executable(hello ${SOURCE_FILES})
add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=16 )
add_definitions( -DMAGICKCORE_HDRI_ENABLE=0 )
find_package(ImageMagick COMPONENTS Magick++)
include_directories(${ImageMagick_INCLUDE_DIRS})
target_link_libraries(hello ${ImageMagick_LIBRARIES})

```

I figured out that there're often issues with undefined references when CMakeLists isn't written correctly, but I made it according to this [About Magick++, how to write the CMakeLists?](https://stackoverflow.com/questions/37759833/about-magick-how-to-write-the-cmakelists)

where am I wrong? I can add any information needed.

UPD 1.
version of magick++,
8:6.8.9.9-7ubuntu5.7

system info:
Description: Linux Mint 18.1 Serena

UPD 2.
I just removed parenthesis and when tryed to compile with

```
size_t x = image.columns;
size_t y = image.rows;

```

KDevelop threw me

> 
> main.cpp:25:22: error: cannot convert ‘Magick::Image::columns’ from type ‘size\_t (Magick::Image::)() const {aka long unsigned int (Magick::Image::)() const}’ to type ‘size\_t {aka long unsigned int}’
> 
> 
> 

even when

```
auto x = image.columns;
auto y = image.rows;

```

it throws 

> 
> main.cpp:25:20: error: cannot convert ‘Magick::Image::columns’ from
>  type ‘size\_t (Magick::Image::)() const {aka long unsigned int
>  (Magick::Image::)() const}’ to type ‘long unsigned int
>  (Magick::Image::\*)() const’
> 
> 
> 

what's happening? 

P.S. hooray, this is my first question on stackoverflow! :-)