find_library不在默认目录外搜索

时间:2019-06-24 12:42:15

标签: cmake

cmake的

find_library命令未在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错误:此项目中使用了以下变量,但是将它们设置为NOTFOUND。   请设置它们或确保在CMake文件中对其进行了正确设置和测试:   接口       在目录C:\ tb

中由目标“ tb”链接

我期望它应该通过,因为我已经在WORK目录中有了interface.so。

0 个答案:

没有答案