find_library не ищет вне каталога по умолчанию - PullRequest
0 голосов
/ 24 июня 2019

find_library команда cmake не выполняет поиск вне пути по умолчанию для пути CMakeLists.txt

Я уже пытался изменить CMAKE_FIND_ROOT_PATH и CMAKE_LIBRARY_PATH, но ни один из них не работал

cmake_minimum_required(VERSION 2.8.9)
set(CMAKE_C_COMPILER "/home/apps/apl/extern/tools/linux/x64/gcc/4.9.3/bin/gcc" CACHE PATH "" FORCE)
set(CMAKE_CXX_COMPILER "/home/apps/apl/extern/tools/linux/x64/gcc/4.9.3/bin/g++" CACHE PATH "" FORCE)

message( "CMAKE_FIND_ROOT_PATH is ${CMAKE_FIND_ROOT_PATH}" )
list( APPEND CMAKE_FIND_ROOT_PATH "$ENV{WORK}" )
message( "CMAKE_FIND_ROOT_PATH after modification is ${CMAKE_FIND_ROOT_PATH}" )
message("CMAKE_LIBRARY_PATH is ${CMAKE_LIBRARY_PATH}")
set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} $ENV{WORK})
message("CMAKE LIBRARY PATH after modification is ${CMAKE_LIBRARY_PATH}")

# if you want to use define SEM run cmake.. -DSEM=ON , default is OFF
option(SEM "DEBUG WITH SEMAPHORE" OFF)

if(SEM)
    add_definitions (-DSEM)
endif()

# adding defines and compiler flags
add_definitions(-std=c++11 -m64 -g -D__MEMORY__ -Wall -fexceptions -DLARGEST_GOLDEN=60000 -D_GNU_SOURCE )

project (testbench)

set (INCL_PATH $ENV{ROOT}/include $ENV{WORK} ./include)
include_directories(${INCL_PATH} $ENV{WORK})
set (LIB_PATH pthread mutex )
link_directories ($ENV{WORK})

add_library(report SHARED ./src/report.cc)
add_executable ( tb 
        ./src/report.cc 
        ./src/main.cc
        ./src/Bench.cc
        ./src/jsoncpp.cpp
           )
target_include_directories ( tb
                 PUBLIC ../../tools
                 PUBLIC ../../tools/linux64
                 PUBLIC ../sw/lib/
                 PUBLIC $ENV{WORK}/
               )
unset(INTERFACE CACHE)
find_library (INTERFACE names interface paths $ENV{WORK} no_default_path)

target_link_libraries ( tb 
                    ${INTERFACE}
                  )

set_target_properties(tb PROPERTIES PREFIX "")
set_target_properties(report PROPERTIES PREFIX "")

Это приводит к следующей ошибке:

CMake Error: в этом проекте используются следующие переменные, но для них установлено значение NOTFOUND.Пожалуйста, установите их или убедитесь, что они установлены и проверены правильно в файлах CMake: ИНТЕРФЕЙС связан целевым "tb" в каталоге C: \ tb

Я ожидаю, что он должен пройти, так как у меня уже есть интерфейс.so в каталоге WORK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...