我找到了具有该find_library功能的库
find_library(MY_LIB lib PATHS ${MY_PAHT})
Run Code Online (Sandbox Code Playgroud)
如果找到库,${MY_LIB}将指向正确的位置.如果未找到库,${MY_LIB}则会MY_LIB-NOTFOUND.
但是我该如何测试呢?
if(${MY_LIB} EQUAL 'MY_LIB-NOTFOUND')
...
endif()
Run Code Online (Sandbox Code Playgroud)
总是评估为假.
max*_*zig 31
您可以简单地测试变量,例如:
find_library(LUA_LIB lua)
if(NOT LUA_LIB)
message(FATAL_ERROR "lua library not found")
endif()
Run Code Online (Sandbox Code Playgroud)
示例输出:
CMake Error at CMakeLists.txt:99 (message):
lua library not found
-- Configuring incomplete, errors occurred!
Run Code Online (Sandbox Code Playgroud)
请注意,我们使用
if(NOT LUA_LIB)
Run Code Online (Sandbox Code Playgroud)
并不是
if(NOT ${LUA_LIB})
Run Code Online (Sandbox Code Playgroud)
因为语义不同.
在评估之前${},变量LUA_LIB被替换if().作为评估的一部分,内容将被解释为变量名称,除非它与常量的定义匹配.这不是我们想要的.
简单地做
if(MY_LIB)
#found
...
else()
#not found
...
endif()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18200 次 |
| 最近记录: |