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, 测试命令是否添加成功