İlk önce, üçüncü taraf kitaplığınızı eklemek için CMakeLists.txt dosyanızı düzenleyin. İki şeye ihtiyacınız olacak: başlık dosyalarına giden yol ve kütüphane dosyasına bağlantı. Örneğin:
# 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()
Sonraki, diğer kütüphaneler için de aynısını yapabilir ve her kütüphaneler algılandığında, hedefe link:
target_link_libraries(yourtarget ${YOUR_LIBRARIES})
Sonra olarak CMake ile projenizi yapılandırmak, ancak yüklü kitaplığınızı bulmak için herhangi bir sihir yolu yoktur, hiçbir şey bulamaz, ancak iki önbellek değişkeni oluşturur: SIFTGPU_INCLUDE_DIR
ve SIFTGPU_LIBRARY
.
Başlık dosyalarını içeren dizini işaret eden ve SIFTGPU_LIBRARY
dosyasını üçüncü taraf kitaplığınızın .lib
dosyasına işaretlemek için CMOK GUI kullanarak SIFTGPU_INCLUDE_DIR
kullanın.
Her üçüncü taraf kitaplığı için tekrarlayın, yeniden yapılandırın ve derleyin.
Bu, cdll dosyasının .dll dosyasının nerede bulunduğunu nasıl gösterir? Ben sadece bir lib'e statik bağlantı görüyorum ve başlık dosyasının nerede olduğuna dair bir ipucu veriyorum. – EbbnFlow
Cmake dll dosyalarının nerede olduğunu bilmeye gerek yok. Bu dosyalar sadece ikiliyi derlerken değil, çalıştırırken gereklidir. – Guillaume