2011-11-10 5 views
1

Makefile에서 불필요한 대상을 자동으로 제거하는 방법이 있습니까? qmake에서 생성 한 것을 사용했지만 QT가없는 컴퓨터에서 실행합니다. qmake에 의해 생성 된 Makefile 이후에는 "$ (QMAKE)"를 호출하는 1) "Makefile :"과 같은 QT 관련 대상이 포함됩니다. 2) "qmake :"; "/usr/share/qt4/mkspecs/common/g++.conf"등과 같이 의존성이있는 QT 파일들도 마찬가지입니다.Makefile에서 불필요한 대상을 제거하십시오.

Makefile: my_project.pro /usr/share/qt4/mkspecs/linux-g++/qmake.conf /usr/share/qt4/mkspecs/common/g++.conf \ 
    /usr/share/qt4/mkspecs/common/unix.conf \ 
... 
$(QMAKE) -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=debug -o Makefile my_project.pro 
... 
qmake: FORCE 
@$(QMAKE) -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=debug -o Makefile my_project.pro 

나는 그 타겟을 수동으로 제거하려고 시도했으나 성공적으로 그와 함께 프로젝트를 컴파일하려고 시도했다. 질문은 단순한 자동화 된 방법이 있다면?

답변

1

아니요. qmake를 사용하는 경우, qt가 설치된 컴퓨터에서 사용하려는 것입니다. 내가 아는 한 당신은 Makefile의 소스를 .pro 파일과 공유해서는 안된다. 자신을 위해 그것을 컴파일하는 사람은 make 전에 qmake를 호출해야합니다 (또는 비주얼을 사용하는 경우 nmake를 호출해야합니다).

qt를 전혀 사용하지 않고 qmake 만 사용하여 Makefile을 생성하는 경우 cmake 또는 autoconf/automake와 같은 대안 (qmake만큼 간단하지는 않지만 인정할 수 있음)이 있습니다.

+0

관심을 가져 주셔서 감사합니다. – ASten

+0

"qmake를 사용한다면 qt가 설치된 컴퓨터에서 사용하고 싶다는 뜻입니다." 아니야. 독립형 C++ 프로젝트에 qtcreator (따라서 qmake)를 사용하고 있습니다. 잘 작동합니다 - 위에서 언급 한'Makefile' 타겟 문제를 제거 할 수 없다는 것을 제외하고 .. – spinkus

+0

그래서 qmake를 Makefile 생성기로만 사용하고 있습니까? 나는 그것이 qmake의 의도 된 사용이라고 생각하지 않는다; 따라서 OP가 묘사 한 단순한 수정 이상의 것을 필요로하지 않더라도이를지지하지는 않을 것입니다. Makefile 생성을위한 다른 도구 (예 : autotools)가 있습니다. 코드를 공유하는 사람 (그리고 아마도 .pro 파일이 아님)이 프로젝트에 대해 뭔가를 바꾸고 싶다면 어떻게해야할까요? 소스를 추가하거나 제거하거나 컴파일 플래그를 변경하는 것은 악몽이됩니다 .... –

관련 문제