gn+ninja代替MDK编译工程

说明

这里是为了学习gn+ninja而从网上找了一些比较好的文章,并且通过实践一步步将demo做了出来,首先要感谢这篇文章,这个demo就是基于这篇文章来编写的,里面的原理这里不再重复,只是记录一下在开发过程中遇到的几个问题,后面会把我的源码放在附件中

另外,linux下简单的helloword工程源码,可以参考我的另外一篇文章

遇到的问题及解决

  • 1. windowns版本的gn+ninja下载

gn+ninja编译工具是google开发的,gn的源码在googlesources上,在国内很多人无法下载,但是华为有一个网站可以下载

https://repo.huaweicloud.com/harmonyos/compiler/https://repo.huaweicloud.com/harmonyos/compiler/

  • 2. windowns下怎么创建.gn文件

win系统要求创建的文件必须有名字,也就是说不能创建.gn这类以"."开头的文件;在网上搜索终于找到一个网友的分支,在这里也感谢一下,学到了一个技能:)

windows 如何创建.gitignore 文件 / .ssh 文件夹?解决windows必须键入文件名提示_dianjiong1915的博客-CSDN博客windows不允许.gitignore之类的文件,也不允许.ssh命名的文件夹名。会提示必须输入文件名。要解决这个问题我以前一直是通过bash使用linux命令创建的。最近发现了一个更简便的方法与大家分享:创建.gitignore文件输入.gitignore.即可越过此限制,回车后文件名会修改为.gitignore。参考:https://winscp...https://blog.csdn.net/dianjiong1915/article/details/101860943其实很简单,就是将文件名改成".gn.",注意gn后面还有一个“.”,这样就可以了

  • 3. 文件中toolchain定义时,ninja编译一直报找不到文件

这个我尝试了很长时间,将mdk安装路径放入系统的环境变量中,将$MDK_DIR改成%MDK_DIR%还是有问题;

后面在gn命令执行过后,手工修改toolchain.ninja,把工具链中$MDK_DIR换成mdk真实的安装路径"E:\Keil_v5"之后就OK了,很长时间内没想明白原因。最后发现是自己对gn文件理解还是不够深入

在gn文件中引用定义的变量就是使用"$"开头,这说明MDK_DIR是在gn文件中定义的一个变量,所以我在BUILDCONFIG.gn中定义了MDK_DIR="E:\Keil_v5",然后在工具链定义中再引用此变量,ninja编译OK

我这个demo是基于正点原子的战舰STM32开发板(stm32f103zet6)开发的(因为手里只有这个板子),其他板子也可以按define_me_freedom文章的方法来开发

(我去,好久没在CSDN上发布文章了,现在竟然改了规则,不能直接在文章后面发布附件了,我单独上传了资源,名字是ninja_test.rar)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值