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

效果:

相关推荐
ホロHoro21 小时前
学习笔记:MYSQL(4)
笔记·学习·mysql
守.护1 天前
云计算学习笔记——HTTP服务、NFS服务篇
笔记·学习·云计算
wdfk_prog1 天前
[Linux]学习笔记系列 -- lib/dump_stack.c 栈回溯打印(Stack Trace Dumping) 内核调试与错误诊断的基石
linux·运维·服务器·c语言·笔记·学习
i.ajls1 天前
无监督学习,推荐系统以及强化学习笔记
笔记·学习·机器学习
聆风吟º1 天前
【Spring Boot 报错已解决】Web server failed to start. Port 8080 was already in use.
spring boot·笔记·技术干货
Suckerbin1 天前
LAMPSecurity: CTF6靶场渗透
笔记·安全·web安全·网络安全
特种加菲猫1 天前
并发编程的守护者:信号量与日志策略模式解析
linux·笔记·策略模式
赶飞机偏偏下雨1 天前
【Java笔记】单例模式
java·笔记·单例模式
GoldenaArcher1 天前
OpenAPI Specification 系列笔记 III
笔记
happilyaaa1 天前
B站 韩顺平 笔记 (Day 27)
笔记