私はインターネットで検索してきましたが、質問に答えられるものを見つけることができませんでした(または何を検索すればよいかわかりません)。
とにかく、ここに私の問題があります。CMakeプロジェクトでサードパーティライブラリ(.dllファイル)を使用したいと思います。含めたいライブラリ( https://github.com/pitzer/SiftGP )はオープンソースであり、使用したいバイナリでも利用でき、ビルドツールとしてCMakeも使用します関連。
私は十分に明確であったと思います。
まず、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を使用してプロジェクトを構成できますが、インストールされたライブラリを見つける魔法の方法がないため、何も見つかりませんが、2つのキャッシュ変数が作成されます:SIFTGPU_INCLUDE_DIR
およびSIFTGPU_LIBRARY
。
CMake GUIを使用してSIFTGPU_INCLUDE_DIR
はヘッダーファイルを含むディレクトリを指し、SIFTGPU_LIBRARY
から.lib
サードパーティライブラリのファイル。
サードパーティのライブラリごとに繰り返し、再度構成してコンパイルします。