gpt4 book ai didi

cmake - CMake没有获取链接库的INTERFACE_INCLUDE_DIRECTORIES

转载 作者:行者123 更新时间:2023-12-04 23:01:06 28 4
gpt4 key购买 nike

我的cmake文件中有这个

get_target_property(moggle_interface_includes moggle INTERFACE_INCLUDE_DIRECTORIES)
message("Moggle interface includes: ${moggle_interface_includes}")

target_link_libraries(motor
moggle
)

get_target_property(motor_includes motor INCLUDE_DIRECTORIES)
message("MOTOR includes ${motor_includes}")

哪个输出
Moggle interface includes: "/home/nick/code/onegame/motor/moggle/include"
Motor includes:" "

怎么会这样?当Moggle链接时,也应根据此
CMake will also propagate "usage requirements" from linked library targets. Usage 
requirements affect compilation of sources in the <target>. They are specified by
properties defined on linked targets. During generation of the build system, CMake
integrates usage requirement property values with the corresponding build properties for
<target>:

INTERFACE_COMPILE_DEFINITONS: Appends to COMPILE_DEFINITONS
INTERFACE_INCLUDE_DIRECTORIES: Appends to INCLUDE_DIRECTORIES

...拿起INTERFACE_INCLUDE_DIRECTORIES并将它们添加到马达中,那么我在做什么错呢?
  • CMake版本:cmake版本2.8.12.2
  • 操作系统:Arch Linux
  • 最佳答案

    CMake在“配置时间”进行一些处理,并在“生成时间”进行一些处理。
    message()在配置时执行,但是链接库仅在生成时稍后评估。因为您的包含目录依赖于链接的库,所以包含目录在生成时间之前不会得到完全解析。
    file(GENERATE)命令在生成时评估generator expression内容并将其写入文件,因此,类似这样的操作会将最终的include目录写入include.txt:

    file(GENERATE 
    OUTPUT "includes.txt"
    CONTENT "$<TARGET_PROPERTY:motor,INCLUDE_DIRECTORIES>\n"
    )

    如果您要调试,请尝试将CMAKE_VERBOSE_MAKEFILE设置为 1以查看编译器命令行或尝试设置
    set(CMAKE_DEBUG_TARGET_PROPERTIES INCLUDE_DIRECTORIES)

    它将向您显示每个目标上每个包含目录的来源回溯。

    http://www.cmake.org/cmake/help/v3.0/manual/cmake-generator-expressions.7.html

    http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html

    http://www.cmake.org/cmake/help/v3.0/variable/CMAKE_DEBUG_TARGET_PROPERTIES.html

    http://www.cmake.org/cmake/help/git-master/command/file.html

    关于cmake - CMake没有获取链接库的INTERFACE_INCLUDE_DIRECTORIES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24091287/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com