作者:良知犹存

转载授权以及围观:欢迎添加微信公众号:Conscience_Remains

总述

    这是之前ST芯片载keil下开发时候总结的一些代码文件options配置小笔记,虽然不是很复杂但是在使用的过程中很方便,这里给大家介绍一下。一个是一个bug介绍,第二个是多个同名代码文件的条件编译,第三个是“文件的解锁/开锁”。

一、bug解释

keil编译遇到这样的提示

FCARM - Output Name not specified,please check 'Options for Target - Utilities'

 

一般是原因是加载文件时为了选择.md .TXT等非.c.h.lib说明文件,而且在配置选项选择了代码文件被一同编译。

解决方法如下:

将工程目录里面非程序的文件,右键并选择第一项Options

file Type选项中,将文件设置为Text文本属性,问题解决。

二、多个同名的代码文件的选择编译设置

我们经常可以在group里面看到一些有红色横杠或者雪花一样的图标,而且一般这些文件都是同样的作用,我们不禁想问,同样作用甚至相同名称的文件为什么可以在一个group下可以编译通过。

下面我就教大家如何把相同的文件进行不同条件的编译:

和第一个技巧的操作类似,第一步先选择文件,右键选择Options选项,这个时候如果是正常显示的文件,则在Properties一栏的右上角,Include in Target Build 和 Always Build是灰色勾选的状态,代表此文件在keil下编译是否会被视作需要编译的文件,否则该文件不被编译。

下面我就选择了system_stm32f0xx.c的文件进行去掉被编译的选项,然后在groups一栏中文件显示红色禁止横杠,显示该文件待会编译的时候不进入编译。

使用场景:一般我们代码进行条件编译会用#if #endif,但是有时候出现不同条件下代码差异巨大,必须用文件来进行区分的时候,我们就可以用这样的配置进行条件编译,我之前底层代码有些用STD库,有些用LL库,我为了方便就选择了使用批量设置文件不进入编译选择。

三、文件的解锁与开锁

我们在开发的时候有时候会遇到groups下面的文件上方有一个小锁的标志,那么这个锁意思是什么呢?

这个在keil的实时环境配置(因为这些文件都来自keil安装目录下,一旦修改所有调用的代码都被更改)的文件中很常见,是为了防止使用者修改代码。说白了,就是该文件只可被读,不可被写,这样使用者就无法修改文件里面的内容了。

但是有些时候我们使用的时候也需要修改,甚至我们也想把代码给其他人使用的时候提前设置成只读模式(还有lib文件,这个以后再说),这样给别人使用就比较安全。

解决方法:这个也很简单,就是找到该文件的存放目录,选择右键属性,取消设置只读即可。

这就是我分享的几种开发小技巧,如果大家有什么更好的思路,欢迎分享交流哈。

更多分享,扫码关注我

ST在keil下开发时候文件options配置的一些小技巧的更多相关文章

  1. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

    原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...

  2. android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

      android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ...

  3. Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 具体图文解说

    版权声明:本博客全部文章均为原创.欢迎交流.欢迎转载:转载请勿篡改内容,而且注明出处,谢谢! https://blog.csdn.net/waldmer/article/details/3272500 ...

  4. linux系统下开发环境安装与配置

    安装系统环境 CentOS 6.8 64位 jdk版本 7u80 64位 Tomcat版本 Tomcat7 maven版本 Apache Maven 3.6.0 vsftpd版本 vsftpd-2.2 ...

  5. Win10 UWP开发中的重复性静态UI绘制小技巧 2

    小技巧1 地址:http://www.cnblogs.com/ms-uap/p/4641419.html 介绍 我们在上一篇博文中展示了通过Shape.Stroke族属性实现静态重复性UI绘制,使得U ...

  6. Linux下挂载iso文件和配置yum本地源

    Linux的版本: [root@pbn ~]# head -n 1 /etc/issueRed Hat Enterprise Linux Server release 6.1 (Santiago) 1 ...

  7. Ubuntu 下开发环境的常规配置。

    Install Chinese input (for Chinese peers) We Choose the Sougou pinying.(搜狗) $ sudo apt-get install g ...

  8. WP8.1&Win10开发:TextBox获取和失去焦点小技巧

    获取焦点:用Focus方法让Textbox获取焦点.代码示例:textbox.Focus(FocusState.Pointer); 失去焦点:让其他控件获取焦点,如Textblock控件(注意要将Te ...

  9. Android开发学习之路-提升用户体验小技巧

    记得之前看谷歌的一个视频提到这个用户体验的问题,今天想起来了就写了个Demo来记录下. 当一个事件发生之后,用户需要一段时间才能知道结果,那么这段时间究竟应该让用户干什么?这个问题很常见,比如我们的软 ...

随机推荐

  1. Laya 踩坑日记 ---A* 导航寻路

    要做寻路,然后看了看laya 官方的例子,感觉看的一脸懵逼,早了半天的api 也没找到在哪有寻路的,最后一看代码,原来是用的github上的A星方案  https://github.com/bgrin ...

  2. LeetCode662 二叉树最大宽度

    给定一个二叉树,编写一个函数来获取这个树的最大宽度.树的宽度是所有层中的最大宽度.这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空. 每一层的宽度被定义为两个端点(该层 ...

  3. redis存json数据时选择string还是hash

    redis存json数据时选择string还是hash 我们在缓存json数据到redis时经常会面临是选择string类型还是选择hash类型去存储.接下来我从占用空间和IO两方面来分析这两种类型的 ...

  4. maven依赖与传递性依赖

    目录 依赖范围 传递性依赖 依赖调节 可选依赖 本文主要是针对<maven实战>书中关键知识点的学习记录,未免有纰漏或描述不到之处,建议购买阅读原书 首先贴出一个pom常见的一些元素释义 ...

  5. 【Oracle】regexp_substr()函数详解

    环境:Oracle10.2.0.5 在SQL中尝试使用正则 可以试下regexp_substr()来进行分割 首先创建一个实验视图: SQL> create or replace view te ...

  6. 【IMPDP】ORA-31655

    出现ora-31655错误的情况是因为不是同一个schema,导致的问题产生 解决的方法; 在导入语句最后添加上remap_schema=old:new 着old是原schema,也就是导出的用户名, ...

  7. kubernets之存活探针

    一   存活探针存在的意义 1.1  kubernet通过存活探针(liveness probe)检查容器是否还在运行,可以为pod中的每个容器单独指定存活探针,如果探针执行失败,kubernets会 ...

  8. WPF NET5 Prism8.0的升级指南

    前言 ​ 曾经我以学习的目的写了关于在.NET Core3.1使用Prism的系列文章.NET Core 3 WPF MVVM框架 Prism系列文章索引,也谢谢大家的支持,事实上当初的版本则是Pri ...

  9. 修改主机名后VCS的修改

    转:https://blog.csdn.net/nauwzj/article/details/6733135 一. 单机改主机名需更改以下文件: /etc/hosts /etc/hostname.hm ...

  10. Redis中哈希分布不均匀该怎么办

    前言 Redis 是一个键值对数据库,其键是通过哈希进行存储的.整个 Redis 可以认为是一个外层哈希,之所以称为外层哈希,是因为 Redis 内部也提供了一种哈希类型,这个可以称之为内部哈希.当我 ...