2009-06-16 9 views
49

에 대한 옵션을 찾고 있습니다.이 코드는 flexflex 님의 도구를 사용하여 flex과 같은 도구에서 객체 파일을 생성 할 수 있도록 표준 입력에서 소스 파일을 읽을 수 있습니다. -t 옵션) 표준 출력에 생성 된 C를 씁니다 :파이프에서 gcc를 읽을 수 있습니까?

flex -t lexer.l | gcc -o lexer.o -magic-option-here 

정말 생성 된 C 파일에 대한 상관 없어 때문이다.

이와 비슷한 것이 있거나 임시 파일을 사용해야합니까?

+1

생성 된 C 파일은 해당 코드를 디버깅해야 할 경우 유용합니다. – laalto

+2

@laalto : 좋은 지적이지만, flex가 생성하는 코드는 인간이 읽을 수있는 것이 아닙니다. – Zifre

답변

58

네,하지만 당신은 -x 옵션을 사용하여 언어를 지정해야합니다 :

# Specify input file as stdin, language as C 
flex -t lexer.l | gcc -o lexer.o -xc - 
기본적으로
+1

제가 생각한 것은 (다른 많은 도구들이 사용하는 것 같았지만) man 페이지에서 그것에 관해서 아무것도 찾을 수 없었습니다 ... – Zifre

16
flex -t lexer.l | gcc -x c -c -o lexer.o - 

하면 파일 이름이되는 것을 말한다 - 파일 이름임을 지정 - '말을위한 다소 표준 규약 인을 표준 입력 '. 또한 링크를 수행하지 않도록 -c 플래그를 원한다. 그리고 gcc가 표준 입력에서 읽을 때 -x와 함께 어떤 언어인지 말해야합니다. -x c는 C 코드라고합니다.

+0

-c는 무엇인지 알고 있습니다. 플렉스와 gcc에 대한 많은 옵션들). – Zifre

관련 문제