MagickWand を使用するソフトウェアで CMake を使用したいと考えています。
CMake は私のマシンで動作し、便利な Makefile を生成します。別のマシンでは、手動で追加する必要があります
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lMagickWand-6.Q16 -lMagickCore-6.Q16")
そうしないと、リンカーは MagickWandGenesis() およびその他の関数を見つけることができません。
-l フラグが経由であることがわかりましたpkg-config --cflags --libs MagickWand
。
CMake はすでにリンカー フラグを生成するべきではありませんTARGET_LINK_LIBRARIES
か?
明らかな何かを見逃しましたか、またはなぜこれがどこでも機能しないのですか?
CMakeLists.txt に次のコードがあります。
FIND_PACKAGE(ImageMagick
REQUIRED
COMPONENTS MagickWand
)
[...]
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16")
[...]
INCLUDE_DIRECTORIES(
${Boost_INCLUDE_DIR}
${ImageMagick_INCLUDE_DIRS}
${ImageMagick_MagickWand_INCLUDE_DIRS}
)
[...]
TARGET_LINK_LIBRARIES(application_name
[...]
${Boost_LIBRARIES}
${CURL_LIBRARIES}
${ImageMagick_LIBRARIES}
${ImageMagick_MagickWand_LIBRARY}
)
その最後${ImageMagick_MagickWand_LIBRARY}
は必要さえないはずです。
両方のマシンで Magick 6.8.9.9、CMake 3.0.2 を使用 (Debian Jessie)。