杰理AC70NN项目用脚本自定义添加.mk文件,直接链接进主Makefile脚本编译

📅 发布时间:2026/7/8 8:43:56 👁️ 浏览次数:
杰理AC70NN项目用脚本自定义添加.mk文件,直接链接进主Makefile脚本编译
问题描述: 当我要一直一个项目文件到706的sdk中,用vscode编译,会报错说未添加路径 ,所以需要自己手动在sdk文件下的Makefile一个一个添加.c文件,这样太繁琐, 是不是可以写一个脚本来做呢, 下面开始教程前提是你的环境有MinGW,能跑cmake,环境变量必须要有下面2个下面开始:先添加这个脚本脚本代码如下:echo offcd/d%~dp0\apps\self_codecmake.-GMinGW Makefilescd/d%~dp0del apps\self_code\makefile /s del *.ninja /s del *.cmake /s del *CMakeCache.txt /sfor/d /r %%iin(*)do(if%%~nxiCMakeFiles(rd /s /q%%i))cd..for/d /r %%iin(*)do(if%%~nxiobjs(rd /s /q%%i))下面我们在自己的代码文件夹里面添加这个cmake代码如下:cmake_minimum_required(VERSION3.12)project(MyProject)# 设置前缀路径用于 .mk 文件中的路径前缀set(PREFIX_PATHapps/self_code)# 获取所有 .c 和 .h 文件递归file(GLOB_RECURSE C_FILES*.c)file(GLOB_RECURSE H_FILES*.h)# 排除构建中间目录list(FILTER C_FILES EXCLUDE REGEXCMakeFiles)list(FILTER H_FILES EXCLUDE REGEXCMakeFiles)# 创建 .mk 文件写入 c 源文件路径file(WRITEdr_code.mkc_SRC_FILES \\\n)foreach(file${C_FILES})file(RELATIVE_PATH rel_path${CMAKE_SOURCE_DIR}${file})file(APPENDdr_code.mk\t${PREFIX_PATH}/${rel_path}\\\n)endforeach()# 添加头文件目录file(APPENDdr_code.mk\nINCLUDES \\\n)# 提取所有 .h 所在目录set(H_DIRS)foreach(file${H_FILES})get_filename_component(dir_path${file}DIRECTORY)file(RELATIVE_PATH rel_path${CMAKE_SOURCE_DIR}${dir_path})if(${rel_path}STREQUAL.)# 如果头文件在项目根目录下即 dr_code加入空字符串占位list(APPEND H_DIRS)else()list(APPEND H_DIRS${rel_path})endif()endforeach()list(REMOVE_DUPLICATES H_DIRS)# 写入包含目录if(H_DIRS)foreach(dir${H_DIRS})if(${dir}STREQUAL)file(APPENDdr_code.mk\t-I${PREFIX_PATH}\\\n)else()file(APPENDdr_code.mk\t-I${PREFIX_PATH}/${dir}\\\n)endif()endforeach()file(APPENDdr_code.mk\t-I${PREFIX_PATH}\\\n)else()file(APPENDdr_code.mk\t-I${PREFIX_PATH}\\\n)endif()最后回到主页面双击这个脚本就能生成一个mk文件进去看看mk文件是否生成成功最后的最后 ,去自己的文件的Makefile链接进去最后直接在vscode ctrlshiftb 编译成功