Здравствуйте.
Имеется проект с cmake. Надо сбилдить его с ImageMagick, скомпиленным из сорцов, статически.
Собирал ImageMagick так:
./configure --enable-static --disable-shared
После этого получаю либы и пытаюсь линковаться с ними с помощью такого CmakeLists.txt :
cmake_minimum_required(VERSION 3.6)
project(zamlib)
include_directories(include/ include/GraphicsMagick)
link_directories(lib/libjpeg lib/libpng lib/libtiff lib/zlib lib/libjasper
lib/libwebp lib/libippcv lib/GraphicsMagick)
set(CMAKE_CXX_STANDARD 14)
set(SOURCE_FILES src/main.cpp)
add_executable(zamlib ${SOURCE_FILES})
#Dependencies
set(GraphicsMagick_LIBS libGraphicsMagick.a libGraphicsMagick++.a)
target_link_libraries(zamlib
${GraphicsMagick_LIBS}
pthread
libippicv.a
liblibwebp.a
liblibjasper.a
liblibjpeg.a
liblibpng.a
liblibtiff.a
libzlib.a
)
Но при линковке имею много ошибок с Magick++ (часть из них):
undefined reference to 'GetExceptionInfo'
undefined reference to 'ThrowLoggedException'
undefined reference to 'SetClientName'
Как такое побороть? Находил в Интернете какие-то решения с Magick-config, но как это встроить в cmake?
Сразу отвечу на вопрос - на самом деле работаю с GraphicsMagick, но линковаться они должны вроде как одинаково, так как GraphicsMagick является форком ImageMagick. Если кто-то может обьективно сравнить ImageMagick и GraphicsMagick, тоже прошу высказаться.