首页 > 解决方案 > CMake 错误:安装 TARGETS 给定目标“Foo::Foo”,这是一个别名

问题描述

我正在尝试添加install()Mach7的支持。这是我的 CMakeLists.txt 的一部分:

add_library(Mach7 INTERFACE)
add_library(Mach7::Mach7 ALIAS Mach7)

install(TARGETS Mach7::Mach7
    EXPORT Mach7Targets
    LIBRARY DESTINATION lib COMPONENT Runtime
    ARCHIVE DESTINATION lib COMPONENT Development
    RUNTIME DESTINATION bin COMPONENT Runtime
    ......

如您所见,我正在尝试使用别名Mach7::Mach7install(TARGETS ...获取错误或以下错误:

CMake Error at CMakeLists.txt:30 (install):
  install TARGETS given target "Mach7::Mach7" which is an alias.

为什么我不能在这里使用 ailas?

标签: cmake

解决方案


根据https://cmake.org/cmake/help/latest/command/add_library.html#id5

不能用于修改 的属性,即不能用作 , 等的操作数。set_property()不能set_target_properties()安装target_link_libraries()导出ALIAS 目标


推荐阅读