将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()

效果:

相关推荐
wdfk_prog11 分钟前
[Linux]学习笔记系列 -- [fs]open
linux·笔记·学习
wdfk_prog13 分钟前
[Linux]学习笔记系列 -- [fs]nsfs
linux·笔记·学习
手揽回忆怎么睡14 分钟前
Streamlit学习笔记2
笔记·学习
阿豪只会阿巴1 小时前
【多喝热水系列】从零开始的ROS2之旅——Day4
c++·笔记·python·ros2
charlie1145141911 小时前
FreeRTOS:软件定时器(Software Timers)与时间管理
开发语言·笔记·学习·freertos·实时操作系统·工程
laplace01231 小时前
LangChain 1.0 入门实战(Part 1)详细笔记
笔记·python·langchain·numpy·pandas
jdlxx_dongfangxing2 小时前
每日课堂笔记(2026年1月1日)
笔记
北岛寒沫2 小时前
北京大学国家发展研究院 经济学辅修 经济学原理课程笔记(第十四课 寡头)
经验分享·笔记·学习
降临-max2 小时前
JavaWeb企业级开发---MySQL
java·开发语言·数据库·笔记·后端·mysql
polarislove02142 小时前
9.5 [定时器]输入捕获-嵌入式铁头山羊STM32笔记
笔记·stm32·嵌入式硬件