将nuttx构建脚本的文件夹复制修改为符号链接

背景:在板子上修改nuttx\boards\arm\{芯片}\{板子}\include\board.h文件,是不会同步到nuttx\{构建目录}\arch\board\board.h的,原因是nuttx的如下脚本所致,他这里调用的是copy_directory :

复制代码
function(nuttx_create_symlink old new)
  if(IS_DIRECTORY ${old} AND CMAKE_HOST_SYSTEM_NAME MATCHES
                             "MSYS|CYGWIN|Windows")
    execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${old} ${new})
  else()
    file(CREATE_LINK ${old} ${new} COPY_ON_ERROR SYMBOLIC)
  endif()
endfunction()

原因是因为windows下创建文件目录符号的软连接时需要管理员权限,所以nuttx开发者才用的复制。带来的后果就是只要修改一下board.h 就要手动复制一次 好麻烦,解决方案:

1.将CMAKE.exe设置为管理员权限.

2.修改脚本:

复制代码
function(nuttx_create_symlink old new)
  if(IS_DIRECTORY ${old} AND CMAKE_HOST_SYSTEM_NAME MATCHES
                             "MSYS|CYGWIN|Windows")    # For MSYS, Cygwin, or Windows, copy the directory instead of creating a symlink
    execute_process(
      COMMAND ${CMAKE_COMMAND} -E create_symlink "${old}" "${new}"
      RESULT_VARIABLE result
      OUTPUT_VARIABLE out
      ERROR_VARIABLE err
    )
    #execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${old} ${new})
  else()
    file(CREATE_LINK ${old} ${new} COPY_ON_ERROR SYMBOLIC)
  endif()
endfunction()

效果:

相关推荐
koo3643 小时前
李宏毅机器学习笔记36
人工智能·笔记·机器学习
WaibiJiangzhi3 小时前
《动手学深度学习》学习笔记——02深度学习介绍
笔记·学习
lkx097883 小时前
笔记C++语言,太焦虑了
前端·c++·笔记
岑梓铭3 小时前
《考研408数据结构》第六章(5.4树和森林)复习笔记
数据结构·笔记·考研·算法·408·ds
せいしゅん青春之我13 小时前
【JavaEE初阶】网络原理——TCP报文结构、确认应答机制
网络·笔记·网络协议·tcp/ip·java-ee
charlie11451419114 小时前
2D 计算机图形学基础速建——2
笔记·学习·线性代数·教程·计算机图形学
9ilk16 小时前
【仿RabbitMQ的发布订阅式消息队列】--- 模块设计与划分
c++·笔记·分布式·后端·中间件·rabbitmq
摇滚侠16 小时前
Spring Boot3零基础教程,JVM 编译原理,笔记87
jvm·spring boot·笔记
摇滚侠17 小时前
Spring Boot3零基础教程,配置 GraalVM 环境,笔记88
java·spring boot·笔记
北诺南兮17 小时前
大模型算法面试笔记——多头潜在注意力(MLA)
笔记·深度学习·算法