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。