두 개의 "메인"파일에 하나의 "도우미"파일이 포함되어 있습니다.이 파일은 동일한 메이크 파일을 가진 두 개의 실행 파일에 내장되어 있습니다. 도우미 파일에 디버그 인쇄 문이 있습니다. print 문을 하나의 실행 파일에 실제로 인쇄하려면 다른 하나는 실행하지 마십시오. 그것을 할 수있는 방법이 있습니까? 지금 나는 다음과 같은 것을 가지고 있으며, 하나의 실행 파일에 대해 정의 된 DEBUG_PRINT로 컴파일하려고하지만 다른 파일에는 정의되어 있지 않지만 어떻게 보이지는 않습니다.다른 옵션으로 다른 타겟에 동일한 파일 빌드하기
main1.cpp :
#include "helper.h"
...
main2.cpp :
#include "helper.h"
...
helper.cpp :
#ifdef DEBUG_PRINT
cout << "here is a debug message" << endl;
#endif
메이크 :
build: main1 main2
main1: main1.o helper.o
g++ -g -o main1 main1.o helper.o
main2: main2.o helper.o
g++ -g -o main2 main2.o helper.o
%.o: %.cpp
gcc -g -c $<
+1 처음에는 Makefile을 잘못 읽었습니다. '$ (CXXFLAGS) helper.cpp'를'g ++'링크 명령 (일종의 더러운 것 같습니다)으로 옮기는 것과는 별개로 두 개의 다른 객체 파일을 가지는 방법은 없습니다. – user786653
감사합니다. –