2011-11-11 2 views
1

유닉스에서 운영체제를 설계하고 있습니다. 나는 fork()를 사용하여 또 다른 두 개의 자식 프로세스를 생성하는 메인 프로세스를 가지고있다. 주 프로세스 호출에서 execl()을 사용하여 자식 프로세스를 호출하므로 두 개의 자식 프로세스를 별도의 .c 파일에 넣을 수 있습니다. 따라서 두 개의 자식 프로세스는 자신의 main()을 가지고 있습니다.여러 main()으로 컴파일하기

gcc를 사용하여 컴파일합니다. 먼저 모든 소스 파일에 대해 .o 파일을 컴파일 한 다음 모든 .o 파일을 사용하여 실행 파일을 컴파일합니다.

이렇게하면 파일에 여러 개의 main()이 있다고하는 오류가 표시됩니다.

이것을 컴파일하는 올바른 방법은 무엇입니까?

감사

+4

올바른 방법은 실행 파일 당 하나의 메인 만 사용하는 것입니다. 왜 모든 .o 파일에서 실행 파일을 만들려고합니까? –

+3

세 가지 응용 프로그램을 컴파일해야 할 것처럼 보일 것입니다. – ccozad

+2

표준에서 단 하나의 메인이라고 말합니다. –

답변

1

올바른 방법 링크하는 많은 child1/main.o을 (의 말)하자하고 모두가 하나의 실행 파일과 child2/main.o으로 필요로하고 모두가 다른으로 필요합니다. 일부 오브젝트 파일이 둘 모두에있을 수 있습니다.

관련 문제