WIFCONTINUED не распознается - PullRequest
1 голос
/ 07 мая 2020

Я пишу программу C, а G CC не распознает WIFCONTINUED. Я включил содержащую его библиотеку (sys / wait.h) и проверил, существует ли библиотека на моем компьютере. Моя программа:

#include <stdio.h>
#include <linux/limits.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include "LineParser.h"

//Some code...
if(WIFCONTINUED(status)){

      temp->status = RUNNING;

}

//More code...

Ошибка, которую я получаю при компиляции:

warning: implicit declaration of function ‘WIFCONTINUED’; did you mean ‘__W_CONTINUED’? [-Wimplicit-function-declaration]
                 else if(WIFCONTINUED(status)){
                         ^~~~~~~~~~~~
                         __W_CONTINUED
undefined reference to `WIFCONTINUED'
collect2: error: ld returned 1 exit status

У кого-нибудь возникла аналогичная проблема с WIFCONTINUED?

EDIT: Вот некоторые пример (не моя исходная программа), который не может быть скомпилирован с теми же ошибками:

#include <stdio.h>
#include <linux/limits.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
#include <string.h>

int main(int argc,char** argv){

        int status;

        if(WIFCONTINUED(status)){


                 printf("Works");

         }

        return 0;
   }

Моя ОС - Ubuntu 18.04, а мой make-файл:

all: rep

rep: rep.o
         gcc -g -Wall -m32 rep.o -o rep

rep.o: rep.c
         gcc -g -Wall -m32 -ansi -c -o rep.o rep.c

.PHONY : clean
 clean :
      -rm -f *.o

1 Ответ

2 голосов
/ 07 мая 2020

Причина - флаг -ansi. Это эквивалентно -std=c90, а WIFCONTINUED не является частью стандарта C.

Большинство включенных вами заголовков системного программирования взяты из POSIX. Так что -ansi ни в чем не поможет. Чтобы исправить это, достаточно просто сбросить флаг -ansi.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...