неопределенная ссылка на regcomp - PullRequest
0 голосов
/ 27 июня 2018

Я занимаюсь разработкой 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(&reg_temp,reg,0);
regcomp(&reg_temp, reg , 0);
if(z==0){
z1=regexec(&reg_temp,s,0,NULL,0);
regfree(&reg_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 скомпилирован не полностью, просто отсутствует функциональная часть. Как я могу это исправить?

...