Cmakelist прыжок движение

Я пытаюсь построить файл cmakelist из makefile leap motion, я могу компилировать в определенном каталоге, мне нужно скопировать /include/ и /lib/x64/ каталоги . Makefile является следующим:

LEAP_LIBRARY := ./lib/x64/libLeap.so -Wl,-rpath,./lib/x64

Sample: Sample.cpp
    $(CXX) -Wall -g -I include Sample.cpp -o Sample $(LEAP_LIBRARY)

Я попытался создать файл cmakelist следующим образом:

cmake_minimum_required(VERSION 2.8)
project(Sample)

INCLUDE_DIRECTORIES(/include/)
LINK_DIRECTORIES(/lib/x64/)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -g -I /include/ -Wl,-rpath,./lib/x64")

add_executable(Sample Sample.cpp )
target_link_libraries(Sample libLeap.so)

Но я всегда получаю одну и ту же ошибку:

Linking CXX executable Sample
/usr/bin/ld: can't find -lLeap
collect2: error: ld returned 1 exit status
make[2]: *** [Sample] Error 1
make[1]: *** [CMakeFiles/Sample.dir/all] Error 2
make: *** [all] Error 2

Спасибо и с уважением.

1 ответ

  1. Я смог разрешить с следующими линиями:

    cmake_minimum_required(VERSION 2.8)
    project(Sample)
    SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
    INCLUDE_DIRECTORIES(../include/)
    LINK_DIRECTORIES(../lib/x64/)
    
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -g")
    
    add_executable(Sample Sample.cpp )
    target_link_libraries(Sample -lLeap)
    

    Это решение имеет предупреждения, но работает:

    CMake Warning (dev) at CMakeLists.txt:5 (LINK_DIRECTORIES):
    This command specifies the relative path
    
    ../lib/x64
    
    as a link directory.
    
    Policy CMP0015 is not set: link_directories() treats paths relative to the
    source dir.  Run "cmake --help-policy CMP0015" for policy details.  Use the
    cmake_policy command to set the policy and suppress this warning.
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    -- Configuring done
    -- Generating done
    -- Build files....
    

    Два способа удалить это предупреждение:

    cmake_minimum_required(VERSION 2.8)
    project(Sample)
    
    cmake_policy(SET CMP0015 NEW)
    
    SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
    INCLUDE_DIRECTORIES(../include/)
    LINK_DIRECTORIES(lib/x64/)
    
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -g")
    
    add_executable(Sample Sample.cpp )
    target_link_libraries(Sample -lLeap)
    

    Или использоватьcmake .. -Wno-dev