[질문] GNU M4 라이브러리를 불러 쓰고 싶습니다

angra의 이미지

안녕하세요

GNU m4를 프로그램 안에서 불러 쓰고 싶은데, 방법을 찾다가 보니
libm4.a를 프로그램 안에서 불러 사용하면 될것 같은데 혹시 이
라이브러리 사용법에 대해서 알고 계신분이나 문서 있으신분은
알려주시면 감사하겠습니다.

아니면 프로그램에서 m4 를 호출해서 사용할 수 있는 다른 방법을
알고 계신분은 알려주시면 감사하겠습니다.

그럼 미리 감사드립니다. :lol:

monpetit의 이미지

libm4.a가 시스템에 있습니까?

cdpark의 이미지

pipe로 m4를 부르면 되지 않을까요? popen 등을 통해서요.

angra의 이미지

monpetit wrote:
libm4.a가 시스템에 있습니까?

GNU m4 소스를 가져다가 컴파일하면 만들어지더군요. ^^ 문제는
이 라이브러리를 이용할 수 있는 어떤 문서도 없더군요. 그래서
소스를 분석해야하는데 소스 분석하기에는 좀 난감해서요..

angra의 이미지

cdpark wrote:
pipe로 m4를 부르면 되지 않을까요? popen 등을 통해서요.

사실 처리해야되는 데이터가 몇건 안될때는 문제가 안되지만, 데이터가
몇천만건 단위로 늘어나면 파이프 같은걸 사용하기에는 성능면에서나
효율성면에서나 좀 힘들다고 느껴져서요..

monpetit의 이미지

angra wrote:
monpetit wrote:
libm4.a가 시스템에 있습니까?

GNU m4 소스를 가져다가 컴파일하면 만들어지더군요. ^^ 문제는
이 라이브러리를 이용할 수 있는 어떤 문서도 없더군요. 그래서
소스를 분석해야하는데 소스 분석하기에는 좀 난감해서요..


흠... 약간의 오해가 있는 것 같습니다. libm4.a가 왜 패키지로는 배포가 안 되는지, 라이브러리 문서가 없는지 생각해 보셨습니까?
libm4.a는 m4의 알짜배기 기능은 하나도 들어가 있지 않습니다. m4에서 사용할 아주 기본적인, 그리고 요즘은 따로 라이브러리로 존재하는 여러 기능들을 묶어 놓은 겁니다. libm4.a를 구성하고 있는 소스 파일을 한 번 살펴 보세요. regex.c, getopt.c, xmalloc.c 등등 전부 m4의 매크로 기능과는 아무런 관계가 없습니다. 이렇게 m4 기능과는 오히려 관계 없는 함수들이기에 라이브러리로 따로 떼어놓은 겁니다. m4의 매크로 파싱, 확장 기능을 사용하시려면 libm4.a 외의 src 디렉토리에 있는 소스를 분석하셔야 합니다.
angra의 이미지

monpetit wrote:
angra wrote:
monpetit wrote:
libm4.a가 시스템에 있습니까?

GNU m4 소스를 가져다가 컴파일하면 만들어지더군요. ^^ 문제는
이 라이브러리를 이용할 수 있는 어떤 문서도 없더군요. 그래서
소스를 분석해야하는데 소스 분석하기에는 좀 난감해서요..


흠... 약간의 오해가 있는 것 같습니다. libm4.a가 왜 패키지로는 배포가 안 되는지, 라이브러리 문서가 없는지 생각해 보셨습니까?
libm4.a는 m4의 알짜배기 기능은 하나도 들어가 있지 않습니다. m4에서 사용할 아주 기본적인, 그리고 요즘은 따로 라이브러리로 존재하는 여러 기능들을 묶어 놓은 겁니다. libm4.a를 구성하고 있는 소스 파일을 한 번 살펴 보세요. regex.c, getopt.c, xmalloc.c 등등 전부 m4의 매크로 기능과는 아무런 관계가 없습니다. 이렇게 m4 기능과는 오히려 관계 없는 함수들이기에 라이브러리로 따로 떼어놓은 겁니다. m4의 매크로 파싱, 확장 기능을 사용하시려면 libm4.a 외의 src 디렉토리에 있는 소스를 분석하셔야 합니다.

그렇군요 제가 소스들을 자세히 보지 않아서 잘못된 오해를 하고 있었군요. 지적해주셔서 감사합니다.