Я занимаюсь разработкой stm32 с помощью SW4STM32.
Когда я попытался использовать arm-none-eabi \ include \ regex.h, я включил и скомпилировал.
И тут у меня появились странные вещи.
regex.h определяет различные константы, например
#define REG_NOMATCH 1
#define REG_BADPAT 2
#define REG_ECOLLATE 3
#define REG_ECTYPE 4
и разнообразная структура,
typedef struct {
int re_magic;
size_t re_nsub; /* number of parenthesized subexpressions */
__const char *re_endp; /* end pointer for REG_PEND */
struct re_guts *re_g; /* none of your business :-) */
} regex_t;
и некоторые функции, в том числе
int regcomp(regex_t *__restrict, const char *__restrict, int);
size_t regerror(int, const regex_t *__restrict, char *__restrict, size_t);
int regexec(const regex_t *__restrict, const char *__restrict,
size_t, regmatch_t [__restrict], int);
void regfree(regex_t *);
Вот мой код
u8 Is_REG_Match(char* reg,char* s){
u8 z=0;
u8 z1=0;
regex_t reg_temp;
z=regcomp(®_temp,reg,0);
regcomp(®_temp, reg , 0);
if(z==0){
z1=regexec(®_temp,s,0,NULL,0);
regfree(®_temp);
return z1;
}
else
return 200;
}
и когда я скомпилировал, reg_temp хорош, но функция regcomp, regexec и regfree была ошибкой - неопределенная ссылка на 'regcomp' и т. Д.
regex.h определенно скомпилирован, так как я пытаюсь удалить определение struct regex_t в regex.h и
regex_t reg_temp;
становится ошибкой.
Кажется, что regex.h скомпилирован не полностью, просто отсутствует функциональная часть.
Как я могу это исправить?