CMake和Magick ++ - 未定义的参考

时间:2018-03-10 11:33:44

标签: c++ cmake clion magick++

我正在尝试使用CLion和Magick ++ 7创建一个简单的图像转换器。
我已经使用官方指南安装了Magick ++,并且“identify -version”显示了ImageMagick 7.0.7-25。 但是,当我尝试使用Magick :: ReadOptions和Magick :: Image :: quality时,我得到一个引用错误:

  

对'Magick :: ReadOptions :: ReadOptions()'的未定义引用   未定义引用'Magick :: ReadOptions :: quiet(bool)'
  未定义引用'Magick :: Image :: quality(unsigned long)'   未定义的引用'Magick :: ReadOptions :: ~ReadOptions()'
  未定义引用'Magick :: ReadOptions :: ~ReadOptions()'

这是我的CMakeLists:

cmake_minimum_required(VERSION 3.9)
project(zosia_konwerter)

set(CMAKE_CXX_STANDARD 17)

add_executable(zosia_konwerter main.cpp)

add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=16 )
add_definitions( -DMAGICKCORE_HDRI_ENABLE=0 )

find_package(ImageMagick REQUIRED COMPONENTS Magick++ MagickWand MagickCore)
include_directories(${ImageMagick_INCLUDE_DIRS})
link_directories(${ImageMagick_INCLUDE_DIRS})
target_link_libraries(zosia_konwerter ${ImageMagick_LIBRARIES})

find_package(Boost)
IF (Boost_FOUND)
    include_directories(${Boost_INCLUDE_DIR})
endif()
set (Boost_USE_STATIC_LIBS OFF) # enable dynamic linking
set (Boost_USE_MULTITHREAD ON)  # enable multithreading
find_package (Boost COMPONENTS REQUIRED chrono filesystem)
target_link_libraries (zosia_konwerter ${Boost_LIBRARIES})

c ++中的代码非常简单:

#include <boost/filesystem.hpp>
#include <Magick++.h>
#include <string>
std::string src="src/", res="res/";
int main(int argc,char **argv) {

    Magick::InitializeMagick(*argv);
    Magick::ReadOptions options;
    options.quiet(true);
    Magick::Image image;
    for(auto &p : boost::filesystem::directory_iterator(src)) {
            image.read(p.path().string());
            image.resize("800x800>");
            image.quality(85);
            image.write(res+p.path().stem().string()+".jpg");
    }
}

0 个答案:

没有答案