target_link_libraries和add_dependencies [英] target_link_libraries and add_dependencies

查看:4466
本文介绍了target_link_libraries和add_dependencies的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有任何用例

  target_link_libraries(my-lib xyz)

add_dependencies (my-lib x)#这不只是浪费字节吗?

如果是这样,有人可以解释一下吗?

解决方案

在当前的CMake版本中:



检查 add_dependencies 导致调用 Target-> AddUtility() x 已添加到功能 my-lib



target_link_libraries 不会导致调用 AddUtility ,但它会将参数添加到 LINK_LIBRARIES 目标属性。



稍后, LINK_LIBRARIES 目标属性和实用程序列表的内容都用于计算 cmComputeTargetDepends



目标中的实用程序列表无法在配置时查询,只有在生成时使用,因此使用 add_dependencies 的参数是已经添加了 target_link_libraries 的库是多余的。 / p>

Is there any use case in which

target_link_libraries(my-lib x y z)

add_dependencies(my-lib x) # this is not just a waste of bytes?

If so, can someone explain what it would be?

解决方案

In current CMake releases:

After some error checking add_dependencies results in a call to Target->AddUtility(). x is added to the list of utilities for my-lib.

target_link_libraries does not result in a call to AddUtility, but it does add the arguments to the LINK_LIBRARIES target property.

Later, both the content of the LINK_LIBRARIES target property and the list of utilities are used to compute the dependencies of the target in cmComputeTargetDepends.

The list of utilities in a target can not be queried at configure time, and is only used at generate time, so the use of add_dependencies with arguments which are libraries already added with target_link_libraries is redundant.

这篇关于target_link_libraries和add_dependencies的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆