MagickWandを使用する私のソフトウェアでCMakeを使いたいです。どのようにCMakeにMagickWandライブラリをどこにでも自動的にリンクするように追加する
CMakeは自分のマシンで動作し、便利なMakefileを生成します。別のマシンで は、私は手動でそれ以外の場合は、リンカがMagickWandGenesis()および他の機能を見つけることができません
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lMagickWand-6.Q16 -lMagickCore-6.Q16")
を追加する必要があります。
pkg-config --cflags --libs MagickWand
を介して-lフラグが見つかりました。
私はすでに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を使用すると、両方のマシン(Debian Jessie)でCMake 3.0.2を使用できます。
2台のマシンの環境が異なるか、FindImageMagickモジュールのバグ/不足です。 * Edit *:FindImageMagickをデバッグしようとしましたか? –
ええ、私はすべての変数を印刷しました(自分の答えを見てください)、両方のマシンで同じ出力が得られました。 – buggy3