make파일 작성중..
글쓴이: bluemoon / 작성시간: 일, 2004/01/25 - 3:31오전
간단한 Makefile을 만들었는데 make하면 이런 에러가 뜨는군요.
-------------------------------------------------------------------------------
$make
g++ -c -o dom.o dom.cc
dom.cc:19:22: oraxml.hpp: No such file or directory
make: *** [dom.o] Error 1
--------------------------------------------------------------------------------
그런데 make를 사용하지 않고 그냥 쉘에서, include 경로를 적어주면
컴파일이 잘 됩니다. 제가 make파일을 잘못작성했는지 이유를 모르겠습니다.
# dom.cc -- 소스파일
.... #include <iostream> #ifndef ORAXML_CPP_ORACLE #include <oraxml.hpp> #endif ....
# Makefile -- make 파일
PRGNAME = OraDOM CC = gcc CXX = g++ CFLAGS = -Wall # 경로는 정확합니다.. INCLUDE = -I$(HOME)/xdk/include -I./ XDK_LIB = -lxmlg9 -lxml9 -lxsd9 ORA_LIB = -lcore9 -lnls9 -lunls9 -lcore9 -lnls9 -lcore9 NET_LIB = -lnsl #EXT_LIB = -lcrypt -ldbxml LIB = -L$(HOME)/lib $(XDK_LIB) $(ORA_LIB) $(NET_LIB) -lpthread OBJ = dom.o # Main all: $(PRGNAME) $(PRGNAME): $(OBJ) $(CXX) $(CFLAGS) -o $@ $@.cc $(INCLUDE) $(LIB) clean: rm -f $(OBJ) $(PRGNAME)
Forums:
...
Main 부분에서 $(OBJ)의 target을 따로 지정하지 않아 make 내부 확장자 규칙에 의해 컴파일 되어서 그렇습니다.
위와 같이 해보시길 바랍니다.
말씀대로 하니 컴파일이 잘 됩니다.다른문제가 또 발견되서 수정은 좀
말씀대로 하니 컴파일이 잘 됩니다.
다른문제가 또 발견되서 수정은 좀 했지만..
답변 감사드립니다!
CFLAGS에 INCLUDES를 포함시켜주면내부확장자규칙이 사용되더라
CFLAGS에 INCLUDES를 포함시켜주면
내부확장자규칙이 사용되더라도 CFLAGS가 적용이 되면서 INCLUDES도 적용됩니다.
C++인 경우라면 CXXFLAGS가 적용됩니다.
댓글 달기