已经链接了 4 个库,如果 FLAG 为 ON,则希望链接一个新库。
target_link_libraries (lib1 lib2 lib3 lib4 ${CMAKE_DL_LIBS})
我希望它像
target_link_libraries (lib1 lib2 lib3 lib4 if(FLAG) lib5 endif() ${CMAKE_DL_LIBS})
反正有没有在 cmakelists.txt 中实现这个?
已经链接了 4 个库,如果 FLAG 为 ON,则希望链接一个新库。
target_link_libraries (lib1 lib2 lib3 lib4 ${CMAKE_DL_LIBS})
我希望它像
target_link_libraries (lib1 lib2 lib3 lib4 if(FLAG) lib5 endif() ${CMAKE_DL_LIBS})
反正有没有在 cmakelists.txt 中实现这个?
只需使用多个target_link_library
命令。
例如,以下可用于为 unix 目标添加库
target_link_libraries (lib1 lib2 lib3 lib4 ${CMAKE_DL_LIBS})
if(UNIX)
target_link_libraries(lib1 lib5)
endif()
或者,您可以使用包含要包含的库的列表
set(LIBS lib2 lib3 lib4 ${CMAKE_DL_LIBS})
if(UNIX)
list(APPEND LIBS lib5)
endif()
target_link_libraries(lib1 ${LIBS})
从理论上讲,您也可以使用生成器表达式,但恕我直言,这将成为可读性最低的替代方案
target_link_libraries(lib1 lib2 lib3 lib4 ${CMAKE_DL_LIBS} $<$<BOOL:${UNIX}>:lib5>)