gpt4 book ai didi

CMake add_custom_command 和 target_link_libraries

转载 作者:行者123 更新时间:2023-12-01 04:48:41 34 4
gpt4 key购买 nike

出于多种原因,我必须通过自定义命令手动生成静态库。

但是,似乎自定义命令仅在目标明确请求其输出文件时才执行。

如果我尝试将生成的静态库与 target_link_libraries 链接起来, CMake 提示它找不到生成它的规则。

# Building library on the fly
add_custom_command(OUTPUT mylib.a
COMMAND ...
)
add_executable(myexe main.cpp)
target_link_libraries(myexe mylib.a) # Fails miserably

我想我必须以某种方式在 add_custom_command 之间插入一个目标或依赖项调用和 target_link_libraries一,但我不明白如何正确地做到这一点。

最佳答案

为了保留可执行文件和库文件之间的依赖关系,您需要使用 完整路径链接到库文件时:

target_link_libraries(my_exe ${CMAKE_CURRENT_BINARY_DIR}/mylib.a)

使用相对路径时,CMake 期望链接器找到库(根据其规则),因此在这种情况下,CMake 无法调整与库文件的依赖关系。

关于CMake add_custom_command 和 target_link_libraries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44083853/

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