我有一个预编译的库,它也使用动态加载的插件。
我将L的导入目标定义为:
add_library(L SHARED IMPORTED)
set_target_properties(L PROPERTIES
IMPORTED_LOCATION_RELEASE library.dll
IMPLIB_LOCATION_RELEASE library.lib
)
set_target_properties(L PROPERTIES
INTERFACE_LINK_LIBRARIES P
)
如何为P及其属性定义导入的目标?
如果我将其定义为:
add_library(P MODULE IMPORTED)
set_target_properties(P PROPERTIES
IMPORTED_LOCATION_RELEASE plugin.dll
)
然后使用L生成的项目将错误地将plugin.dll视为要链接的lib。 我想保持依赖(以便我可以传递安装plugin.dll),但避免L链接目标P
答案 0 :(得分:0)
我最终使用INTERFACE_LINK_LIBRARIES 未将L链接到P 来解决此问题。
我通过添加包含其插件的附加变量来配置L:
LIST(APPEND L_PLUGINS P)
使用L的目标只需使用变量$ {L_PLUGIN}即可访问其插件(例如,为了安装其文件)
注意:这与Qt插件组件使用的方法相同