Подскажите, чего не хватает?
main.cpp
#include <iostream>
#include "image.h"
#include <Magick++.h>
using namespace std;
using namespace Magick;
int main(int argc,char **argv)
{
Magick::InitializeMagick(*argv);
Magick::Image image;
try {
// Read a file into image object
image.read( "girl.gif" );
// Crop the image to specified size (width, height, xOffset, yOffset)
image.crop( Geometry(100,100, 100, 100) );
// Write the image to a file
image.write( "x.gif" );
}
catch( Exception &error_ )
{
cout << "Caught exception: " << error_.what() << endl;
return 1;
}
return 0;
}
image.cpp
#include "image.h"
#include <Magick++.h>
Image::Image()
{
}
image.h
#ifndef IMAGE_H
#define IMAGE_H
#include <vector>
using namespace std;
class Image
{
public:
Image();
};
#endif // IMAGE_H
CMakeLists.txt c
make_minimum_required(VERSION 3.5)
project(IimageReadObj)
###add_executable(${PROJECT_NAME} "main.cpp")
find_program(MAGICK_CONFIG "Magick++-config")
# Ask about CXX and lib flags/locations
execute_process(COMMAND "${MAGICK_CONFIG}" "--cxxflags" OUTPUT_VARIABLE MAGICK_CXX_FLAGS)
execute_process(COMMAND "${MAGICK_CONFIG}" "--libs" OUTPUT_VARIABLE MAGICK_LD_FLAGS)
# Remove trailing whitespace (CMAKE warns about this)
string(STRIP "${MAGICK_CXX_FLAGS}" MAGICK_CXX_FLAGS)
string(STRIP "${MAGICK_LD_FLAGS}" MAGICK_LD_FLAGS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ${MAGICK_CXX_FLAGS} ${MAGICK_LD_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall ")
# Create a list with all .cpp source files
set( project_sources
main.cpp
image.cpp
)
# Create executable with all necessary source files
add_executable(${PROJECT_NAME}
${project_sources}
)
find_package(ImageMagick COMPONENTS Magick++)
include_directories(${ImageMagick_INCLUDE_DIRS})
/home/alexandr/programming/IimageReadObj/IimageReadObj/main.cpp:10:
ошибка: undefined reference to Magick::InitializeMagick(char const*)'
/home/alexandr/programming/IimageReadObj/IimageReadObj/main.cpp:11:
ошибка: undefined reference to
Magick::Image::Image()'
/home/alexandr/programming/IimageReadObj/IimageReadObj/main.cpp:14:
ошибка: undefined reference to
Magick::Image::read(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)'
/home/alexandr/programming/IimageReadObj/IimageReadObj/main.cpp:17:
ошибка: undefined reference to
Magick::Geometry::Geometry(unsigned
long, unsigned long, long, long, bool, bool)'
/home/alexandr/programming/IimageReadObj/IimageReadObj/main.cpp:17:
ошибка: undefined reference to Magick::Image::crop(Magick::Geometry
const&)'
/home/alexandr/programming/IimageReadObj/IimageReadObj/main.cpp:17:
ошибка: undefined reference to
Magick::Geometry::~Geometry()'
/home/alexandr/programming/IimageReadObj/IimageReadObj/main.cpp:20:
ошибка: undefined reference to
Magick::Image::write(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)'
/home/alexandr/programming/IimageReadObj/IimageReadObj/main.cpp:11:
ошибка: undefined reference to
Magick::Image::~Image()'
/home/alexandr/programming/IimageReadObj/IimageReadObj/main.cpp:17:
ошибка: undefined reference to Magick::Geometry::~Geometry()'
/home/alexandr/programming/IimageReadObj/IimageReadObj/main.cpp:11:
ошибка: undefined reference to
Magick::Image::~Image()'
/home/alexandr/programming/IimageReadObj/build-IimageReadObj-Desktop_Qt_5_12_0_GCC_64bit-u0412u044bu043fu0443u0441u043a/CMakeFiles/IimageReadObj.dir/main.cpp.o:-1:
ошибка: undefined reference to `typeinfo for Magick::Exception' :-1:
ошибка: collect2: error: ld returned 1 exit status
Так вы объявляете в глобальном пространстве имён.
using namespace std;
class Image
{
public:
...
};
И пользоваться нужно так :
using namespace std;
using namespace Magick;
int main(int argc,char **argv)
{
::Image image;
}
Если вы хотите класс определить в другом пространстве, то так и надо писать.
namespace Magick {
class Image
{
public:
...
};
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он соответствовал тематике «Stack Overflow на русском»
Условие:
Почему при попытки получить методы из интерфейса, пишет Cannot resolve method 'isProduct()' и Cannot resolve method 'getMenuTitle()'ourMenuItemsя прописываю как ArrayList