我找到了具有find_library
功能的库
find_library(MY_LIB lib PATHS ${MY_PAHT})
如果找到了库,${MY_LIB}
将指向正确的位置。
如果找不到该库,${MY_LIB}
将为MY_LIB-NOTFOUND
。
但我如何测试呢?
if(${MY_LIB} EQUAL 'MY_LIB-NOTFOUND')
...
endif()
始终评估为false。
答案 0 :(得分:23)
您可以简单地测试变量,例如:
find_library(LUA_LIB lua)
if(NOT LUA_LIB)
message(FATAL_ERROR "lua library not found")
endif()
示例输出:
CMake Error at CMakeLists.txt:99 (message):
lua library not found
-- Configuring incomplete, errors occurred!
请注意,我们使用
if(NOT LUA_LIB)
而不是
if(NOT ${LUA_LIB})
使用${}
,变量LUA_LIB
在评估if()
之前被替换。如
评估的一部分,然后内容将被解释为变量名称,
除非它与常量的定义相匹配。这不是我们想要的。
答案 1 :(得分:6)
简单地做
if(MY_LIB)
#found
...
else()
#not found
...
endif()