如何在ABC中添加自己的第一个命令

1、进入src目录,在该目录下mkdir创建文件夹testFirst, 然后在文件夹testFirst下依次创建以下4个空文件:

module.make、testcmd.c、testfirst.c、testfirst.h

module.make——列出要编译的文件;

testcmd.c——abc与c文件之间的接口文件,使得abc可以调用我们自己编写的c程序文件;

testfirst.c——自己编写的C文件;

testfirst.h——对应.c文件的头文件;

2、在module.make编写如下代码

SRC += src/testFirst/testfirstcmd.c \
       src/testFirst/testfirst.c

在testfirst.c编写如下代码

#include "base/main/main.h"  //main.h包含ABC自带的所有头文件

ABC_NAMESPACE_IMPL_START

void f()
{
        printf("hello--- world\n");

}  //仅有void f()至此的代码是自己编写,其余是固定格式

ABC_NAMESPACE_IMPL_END

在testfirst.h编写如下代码

#ifndef TESTFIRST_h   //定义的宏名与.h文件的名字相同
#define TESTFIRST_h

#include"base/main/main.h"

ABC_NAMESPACE_HEADER_START

extern void f();      //仅有此行代码是自己编写,其余是固定格式
//extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义
#endif

ABC_NAMESPACE_HEADER_END

在testcmd.c编写如下代码

#include"base/main/main.h"    //abc头文件调用
#include"testfirst.h"         //c文件头文件调用

ABC_NAMESPACE_IMPL_START

extern int testfirst_command(Abc_Frame_t * pAbc,int argc,int ** argv);  //testfirst自定义函数名,此函数名与后续main.h文件添加的必须一致

void testfirst_Init(Abc_Frame_t * pAbc){
 Cmd_CommandAdd(pAbc,"Various","my",testfirst_command,0);
}
//第一个参数类似于全局的索引,第二个参数表示命令的分类,第三个参数表示命令名称,第四个参数表示命令对应的函数,第五个参数作用未知
//在abc输入help,可以在命令组的Various下找到my命令
int testfirst_command(Abc_Frame_t * pAbc,int argc,int ** argv){
 f();
 return 0;
}
ABC_NAMESPACE_IMPL_END

3、进入abc中src/base/main目录,用vim mainInit.c; 并添加下列两行命令

 4、回到abc目录下,执行make

 5、打开abc, 测试命令是否添加成功

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值