기본 디렉토리 src와 두 개의 서브 디렉토리 src/foo와 src/tests가 있습니다. src/tests에는 src/tests/tests.cpp를 빌드하는 Makefile이 있습니다. 내가 src/foo/Makefile에하나의 타겟이 다른 타겟의 타겟에 의존하도록 Makefile을 구조화하려면 어떻게해야합니까?
%.o : %.cpp
${GCC} -c ${CXXFLAGS} $< -o [email protected]
으로 컴파일하고있는 src/foo/*. o에 의존하기를 바란다. 하나 또는 다른 것을 포함 시켜서 Makefile을 구조화하는 좋은 방법이 있습니까? 당신은 GNU가 만들어 사용하는 가정
# Obviously this is impossible right now since OBJECT_FILES is not defined in this Makefile.
tests: tests.o ${OBJECT_FILES}
${GCC} ${CXXFLAGS} tests.o ${OBJECT_FILES} -o tests
tests.o: tests.cpp
...
나는 Makefile을 도려 내고 더 나은 빌드 시스템을 사용한다. 개인적으로 나는 CMake를 선호하지만 주위에는 다른 사람들이 있습니다. – Jens
예,'make'는 네이티브 재귀 또는 전체 프로젝트 범위 대상 종속성을 수행하지 않습니다. 'cmake' 외에도 'scons' 또는 오래된'cons'를 체크하십시오. 'scons'는 기본적으로 재귀 적입니다 : 프로젝트를 전체적으로 보았고, 어디서나 의존성을 가질 수 있습니다. 대부분의 경우 지금 시도해 보는 것과 같은 종속성을 지정할 필요조차 없지만 자체적으로 발견 할 수 있습니다. – Dummy00001