2017-03-21 2 views
0

이것은 과제물입니다. 나는 기본적으로 실행 파일을 컴파일하는 makefile을 가지고있다. gcc -o myprogram myprogram.cmakefile을 사용하여 코드를 삽입 할 수 있습니까?

우리는 3 가지의 추가 make case를 만들기로되어있다 : "makefile은 프로그램의 3 개의 다른 지정된 장소에 10 초의 sleep을 삽입하는 것을 지원해야한다. 이 3 가지 경우 make test1, make test2를 사용하여 make test3.

내가 기본에서이 같은 여분의 경우를 할 수 있도록 사용하는 방법을 알고 있지만, 내 질문은 메이크 파일이 실행 파일을 컴파일하기 전에 myprogram.c에 코드를 삽입하는 데 사용할 수 있습니까? 또는 myprogram1.c myprogram2.c 등을 작성한 다음 케이스에 사용해야합니까?

고마워요!

답변

5

간단한 해결책은 당신이 필요로하는 세 개의 파일을 생성하지

int main(void) 
{ 
    SLEEP_HERE; 
    return 0; 
} 

같은 컴파일시

gcc -Wall -Werror -DSLEEP_HERE='sleep(10)' -o myprogram myprogram.c 
1

에서 당신이 컴파일시에 정의 할 수 있습니다 매크로를 할 것이다.

#ifndef DELAY_SEC 
#define DELAY_SEC 0 
#endif 

지금 모든 곳에서 매크로 DELAY_SEC을 사용하여 파일 내부에 매크로를 만들고 일반적으로 컴파일 된 경우의 값은 0이됩니다. 이제 메이크의 대상에 대한 10 초 지연 다른 지연에 대한

gcc -DDELAY_SEC=10 -o myprogram myprogram.c 

등등으로 컴파일하고 그에 따라 컴파일해야 할 위치

.

관련 문제