符号链接CMake

sti*_*oob 13 cmake

我想重命名某些可执行文件,CMakeLists.txt但也需要从旧名称到新文件的符号链接以实现向后兼容.如何在支持符号链接的系统上实现这一目标?

对于不支持符号链接的系统,还有哪些替代方案?

谢谢

uli*_*tko 20

另一种方法:

INSTALL(CODE "execute_process( \
    COMMAND ${CMAKE_COMMAND} -E create_symlink \
    ${target} \
    ${link}   \
    )"
)
Run Code Online (Sandbox Code Playgroud)

这样,符号链接将make install仅在期间完成.


小智 18

您可以创建自定义目标并使用CMake创建符号链接

ADD_CUSTOM_TARGET(link_target ALL
                  COMMAND ${CMAKE_COMMAND} -E create_symlink ${target} ${link})
Run Code Online (Sandbox Code Playgroud)

这仅适用于支持符号链接的系统,请参阅指南.

仅适用于UNIX:

create_symlink old new - 创建一个新的符号链接 - > old


Ria*_*inn 14

另一种方法更冗长,只在安装时运行:

macro(install_symlink filepath sympath)
    install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${filepath} ${sympath})")
    install(CODE "message(\"-- Created symlink: ${sympath} -> ${filepath}\")")
endmacro(install_symlink)
Run Code Online (Sandbox Code Playgroud)

像这样使用它(类似于ln -s):

install_symlink(filepath sympath)
Run Code Online (Sandbox Code Playgroud)