어제부터 C 관련 공부를 다시 하고 있습니다. Unix 환경에서 개발하다보니 make 는 필수입니다. Java 를 접하신 분이라면 Ant 와 비슷한 내용이라고 보시면 됩니다.
근데 이놈의 make 가 제대로 동작하지 않는 것입니다. port 설치 같은 것을 할 때는 잘만 되던것이, 제가 Makefile 을 작성하기만 하면 Need an operator 라고 하면서 에러가 나는 것입니다.
구글 검색을 통해 봤더니 gnu make를 쓰라는 말이 많아서 gmake 로 해도 마찬가지로 missingn separator 라는 에러메시지만을 표시할 뿐이었습니다.
Make 파일을 만들 때 가장 조심해야 하는 것이 명령 앞에 tab 키를 눌러주는 것입니다. 저 역시 vi 에서 편집을 할 때 tab 키를 이용해서 명령을 적었지요. 하도 안되어서 아주 간단한 것만 테스트를 해보았습니다.
[Makefile]
all :
echo "hello"
all :
echo "hello"
이렇게 간단한 Makefile 마저 에러가 나버리니... ^^ 한참을 고민하다가 혹시나 vi 가 tab 을 공백으로 변환하는건 아닌가 하여 에디터를 바꾸어보았습니다. 대부분의 개발자들처럼 저도 auto indent 며 ts 등을 셋팅해놓았었지요.
그래서 바꾸어본 에디터가 pico.
동일한 내용을 입력하고나서 make 를 해봅니다.
[shinnara ~/work/freebsd-make]$ make
echo "hello"
hello
echo "hello"
hello
정말 오 마이 갓!입니다. 이것때문에 그렇게 골머리를 앓다니요..T.T
Makefile 을 작성했는데 제대로 안되시는 분들은 먼저 에디터부터 확인해보세요 ^^
댓글을 달아 주세요