まず、CMakeLists.txtを編集してサードパーティのライブラリを組み込みます。ヘッダーファイルへのパスとリンクするライブラリファイルの2つが必要です。例えば:
# searching for include directory
find_path(SIFTGPU_INCLUDE_DIR siftgpu.h)
# searching for library file
find_library(SIFTGPU_LIBRARY siftgpu)
if (SIFTGPU_INCLUDE_DIR AND SIFTGPU_LIBRARY)
# you may need that if further action in your CMakeLists.txt depends
# on detecting your library
set(SIFTGPU_FOUND TRUE)
# you may need that if you want to conditionally compile some parts
# of your code depending on library availability
add_definitions(-DHAVE_LIBSIFTGPU=1)
# those two, you really need
include_directories(${SIFTGPU_INCLUDE_DIR})
set(YOUR_LIBRARIES ${YOUR_LIBRARIES} ${SIFTGPU_LIBRARY})
endif()
次は、他のライブラリのために同じことを行うことができますし、すべてのライブラリが検出された場合、ターゲットへのリンク:
target_link_libraries(yourtarget ${YOUR_LIBRARIES})
は、その後、あなたはようにCMakeを使用してプロジェクトを構成することができますが、インストールされたライブラリを見つけるための魔法の方法はありませんが、何も見つかりませんが、SIFTGPU_INCLUDE_DIR
とSIFTGPU_LIBRARY
という2つのキャッシュ変数が作成されます。
CMake GUIを使用して、SIFTGPU_INCLUDE_DIR
は、ヘッダファイルを含むディレクトリを指し、SIFTGPU_LIBRARY
はサードパーティのライブラリの.lib
ファイルを指します。
サードパーティのライブラリごとに繰り返して、もう一度設定してコンパイルしてください。
これは、.dllファイルがどこにあるかをcmakeに伝えますか?私は、静的なlibへのリンクだけを見て、ヘッダーファイルがどこにあるのかのヒントを提供します。 – EbbnFlow
Cmakeは、dllファイルの場所を知る必要はありません。これらのファイルは、コンパイル時にバイナリを実行していないときにのみ必要です。 – Guillaume