Не могу скомпилировать MagickWand с помощью CMake - PullRequest
0 голосов
/ 09 марта 2019

Я не смог скомпилировать мою программу, которая использует MagickWand с CMake. Я получаю эту ошибку:

[ 33%] Linking CXX executable bin/ScreenRecorder
/usr/bin/ld: CMakeFiles/ScreenRecorder.dir/source/main.cpp.o: in function `std::thread::thread<void (&)(), , void>(void (&)())':
main.cpp:(.text._ZNSt6threadC2IRFvvEJEvEEOT_DpOT0_[_ZNSt6threadC5IRFvvEJEvEEOT_DpOT0_]+0x20): undefined reference to `pthread_create'
/usr/bin/ld: CMakeFiles/ScreenRecorder.dir/source/screenshot.cpp.o: in function `printScrn(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
screenshot.cpp:(.text+0xd): undefined reference to `MagickWandGenesis'
/usr/bin/ld: screenshot.cpp:(.text+0x1a): undefined reference to `NewMagickWand'
/usr/bin/ld: screenshot.cpp:(.text+0x31): undefined reference to `MagickReadImage'
/usr/bin/ld: screenshot.cpp:(.text+0x4f): undefined reference to `MagickWriteImage'
/usr/bin/ld: screenshot.cpp:(.text+0x62): undefined reference to `DestroyMagickWand'
/usr/bin/ld: screenshot.cpp:(.text+0x6b): undefined reference to `MagickWandTerminus'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/ScreenRecorder.dir/build.make:99: bin/ScreenRecorder] Error 1
make[1]: *** [CMakeFiles/Makefile2:73: CMakeFiles/ScreenRecorder.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Это мой CMakeLists.txt:

cmake_minimum_required(VERSION 3.0)
project(ScreenRecorder)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall")
set(source_dir "${PROJECT_SOURCE_DIR}/source/")
set(EXECUTABLE_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/bin/")

find_package(ImageMagick REQUIRED)

include_directories(
  "/usr/include/ImageMagick-6/"
)

link_libraries(
  "/usr/lib/x86_64-linux-gnu/"
)

file (GLOB src_files "${source_dir}*.cpp")

add_executable(ScreenRecorder ${src_files})

Я пытался использовать такие переменные, как $ {ImageMagick_MagickWand_INCLUDE_DIR} и $ {ImageMagick_MagickWand_LIBS_DIR} , но там указано, что "wand / MagickWand.h" не найдено . Спасибо за ваши ответы.

...