- api头文件应不包含任何其他的头文件
在这里先直接线上代码了,
#ifndef LMTRAIN_API_H
#define LMTRAIN_API_H
/*
* 这里不能包含任何其他的类文件,头文件需要尽量的简单,
* 记住别人不用关心你是怎么实现的
#include "class_a.h"
#include "class_b.h"
*/
#ifdef __cplusplus
extern "C" {
//这里的注释,会遇到交叉编译的问题,在这里可以连接C的库函数
#endif
/**
* init
* input : conf conf_file
*/
void *api_init_txl_lmtrain_conf(char *conf, char *conf_file);
/**
* init
* input : lexicon
*/
void *api_init_txl_lmtrain(char *lexicon);
/**
* unit
* txllmtrain_res : lmtrain resource
*/
int api_unit_txl_lmtrain(void *txllmtrain_res);
/**
* id_corpus : id string
* model : memory allocated outside, same to release
* len : reference to the_len_of_model
* txllmtrain_res : lmtrain resource
*/
int api_get_model_txl_lmtrain(void *txllmtrain_res, char *id_corpus, char *model, int &len);
#ifdef __cplusplus
};
#endif
#endif // LMTRAIN_API_H
上面的注释里面大致说了一下,基本能看出一些了。
- api 头文件的使用,用 void*
void *ptxl = api_init_txl_lmtrain(argv[1]);
/*
* 这里可以直接用void * 来申明变量,使用的时候应尽量的简单,不需要知道类型
*/
注意看文件里面的注释
- 涉及问题库的编译与使用
这里需要结合上一篇文章来理解,编译链接库与api头文件