A.编译前的调教

在日常的C语言工程中,常常需要针对不同的平台、环境做不同类型的软件。最基本的,不同的操作系统(ISA),不同的device(协议、接口),不同的引擎(开发环境等),对应的实际代码完全不同。这一类兼容性开发,比较常见的方式就是Kconfig配置。

可以使用mconf工具和conf工具对简易编写的Kconfig文件进行环境变量的配置,用mconf的binary程序读取Kconfig文件后,生成的.config文件由conf的binary产生宏展开文件(例如autohead.h这样的文件)将用户选择好的配置文件变量导入到即将开始的binay编译中。makefile将会针对对应的配置文件信息有选择的编译对应环境下的C语言binary,实现调教。

B.编译后的调教

C语言的主函数比较标准格式为

int main(int argc, char * argv[]){exe();
return 0;
}

这里的argc表示执行binary时输入的指令数目,argv表示执行binary时的各条指令内容。一般从命令行运行某程序时,直接输入对应路径下的对应文件名就可以了。如是如此的话,argc就是1,argv[0]就是一个表示对应路径/对应文件的字符串。

但有时候,我们需要在单纯执行主程序之外还加入一些其他的因素。比如在主程序的执行同时对其进行监控(即状态信息的打印)。

这个时候,就可以使用getopt()家族了。这一函数族可以针对命令行执行时的输入指令不同执行不同类型的命令。

getopt(argc,argv,format,table)将会返回一个int告诉你是否存在对应table内的指令类型,并通过optarg参数来指代对应指令下的argv具体的内容。

在编译前与后调教C语言binary的一种方法相关推荐

  1. c语言编程非线性方程求解,c语言计算机编程三种方法求解非线性方程.doc

    c语言计算机编程三种方法求解非线性方程.doc 本 科 专 业 学 年 论 文题 目非线性方程求解比较姓 名 何 娟 专 业 计算机科学技术系 班 级 08 级本科(2)班 指 导 老 师 刘 晓 娜 ...

  2. c++学习笔记之基础---类内声明函数后在类外定义的一种方法

    在C++的"类"中经常遇到这样的函数, 返回值类型名 类名::函数成员名(参数表){ 函数体.} 双冒号的作用 ::域名解析符!返回值类型名 类名::函数成员名(参数表) { 函数 ...

  3. mysql c接口返回自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  4. mysql 新增返回主键自增id_详解mysql插入数据后返回自增ID的七种方法

    引言 mysql 和 oracle 插入的时候有一个很大的区别是: oracle 支持序列做 id: mysql 本身有一个列可以做自增长字段. mysql 在插入一条数据后,如何能获得到这个自增 i ...

  5. 韩信点兵C语言实现的几种方法

    韩信点兵C语言实现的几种方法 问题描述: 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排.五人一排.七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了.输入3个非负整 ...

  6. 注册表桌面显示计算机,电脑开机后不显示桌面图标怎么办?修改注册表解决开机后不显示桌面图标的3种方法...

    解决方法一: 1.按Win+R打开运行,输入regedit并回车: 2.在注册表展开:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersi ...

  7. c语言编程非线性方程求解,c语言计算机编程三种方法求解非线性方程

    c语言计算机编程三种方法求解非线性方程 本 科 专 业 学 年 论 文题 目:非线性方程求解比较姓 名: 何 娟 专 业: 计算机科学技术系 班 级: 08 级本科(2)班 指 导 老 师: 刘 晓 ...

  8. u盘扫描并修复后文件消失了怎么办?2种方法帮助找回

    演示机型:技嘉 H310M HD22.0 系统版本:Windows 10 专业版 软件版本:云骑士数据恢复软件3.21.0.17 案例分享:"我的u盘每次插电脑都会弹出要不要扫描并修复的提示 ...

  9. 非递归后序遍历二叉树总结(2种方法)

    算法 非递归后序遍历二叉树总结(2种方法) @author:Jingdai @date:2020.12.04 传送门 非递归先序遍历二叉树 非递归中序遍历二叉树 方法1 非递归用栈来辅助遍历,后序遍历 ...

最新文章

  1. css中的display属性之li元素
  2. react native改变app的图标和名称
  3. 美摄 - 助力打造完善的音视频解决方案
  4. deepin桌面为什么那么卡_deepin因NVIDIA显卡造成开机启动问题:卡在开机logo界面+进入桌面鼠标一直转圈...
  5. “如果产品经理躺平接受需求,那程序员免不了想打一架”
  6. Flask 正则路由匹配——转换器
  7. PointConv论文阅读笔记
  8. Python接口自动化-接口基础(一)
  9. Python 2.x vs Python 3.x(四)—— TypeError: unhashable type
  10. 【学习体会】泊松表面重建
  11. 自建CA然后颁发证书给搭建的httpd用
  12. Gradle dependencies 解决项目依赖冲突
  13. 深度学习之图像分类(二十五)-- S2MLPv2 网络详解
  14. Kubernetes v1.10.4 安装记录
  15. [论文笔记]CAB:CAching in Buckets CAB-ACME
  16. 关于MFC程序中隐藏任务栏图标的问题
  17. Nginx安装和配置
  18. hibernate中 one to many和many to one的非主键关联
  19. react报错: Unable to preventDefault inside passive event li ……
  20. 电商优惠券如何设计?

热门文章

  1. 网站黑白色调之filter属性
  2. PC和DSP通信以及MCU和DSP通信之间的切换
  3. 声音频率和乐器知识记录
  4. 俞敏洪:忍受孤独,失败,屈辱的能力是成就大业的必备条
  5. BJDCTF 2nd writeup(二)
  6. 字符串常用方法(1)
  7. Windows7更改自己的计算机名,方便局域网内的用户识别
  8. 怎么样防止服务器被入侵
  9. Meeting Rooms II -- LeetCode
  10. Vpp与dBW、dBmW的关系