2014-02-15 3 views
2

목표는 qmake를에 내가 하위 디렉토리에 넣어 출발점으로 다른 C++ 프로젝트를 사용하여 Qt는 프로젝트를 시작하고 싶은 상속 속성

을 Makefile을 포함합니다.

/Qt Project/C++ sub-project 내부에는 정의, 변수 및 플래그 및 소스 (다른 하위 디렉토리에 있음)가있는 Makefile이 있습니다.

qt-project가이 makefile을 포함하고 하위 프로젝트의 모든 개체를 컴파일하고 새 프로젝트에서 함께 (플래그와 libs와 함께) 연결할 수 있기를 바랍니다.

시도

가 나는 .PRO 내부 사용할 수 있도록 mytarget.commands = make -C ./sub-project -f makefile, 을 시도했지만이 단순히 Qt를 사용 새로운 주요 소스 코드와 함께 링크 할 수 없습니다, 따라서 메이크 파일을 사용합니다.

하나의 개체에 모든 하위 프로젝트를 별도로 연결하려고 시도했지만 ld 또는 ar은 플래그를 인식하지 못합니다.

답변

2

대체 접근 방식은

당신은 CMake를 시도? 필요한 모든 정의가 포함 된 CMakeLists.txt 파일을 중앙에 만들고 CMakeLists.txt 개의 파일을 포함 시키십시오.이 파일은 Qt와 C++ 폴더에 저장하면됩니다. 이렇게하면 Makefilesqmake 항목을 함께 사용하지 않고 일관된 구성을 갖게됩니다.

여기서 Qt + CMake tutorial을 찾을 수 있습니다.

+0

이것은 메이크 파일을 다시 작성해야 함을 의미합니까? –

+1

내 대답에 게시 한 링크를 보셨습니까? makefile을 CMake의 CMakeLists.txt로 대체해야합니다. CMake는 빌드 구성을 설명하는 자체 메타 언어를 가지고 있습니다. CMakeLists.txt를 처리하고 Makefile을 만듭니다. 당신은 자동으로 깨끗한 목표물 등을 얻을 것입니다. Qt를위한 몇 가지 도우미 블록을 제공합니다. 예를 들어 네트워크 라이브러리 등을 포함 할 수 있습니다. [튜토리얼] (http://www.cmake.org/Wiki/CMake/Tutorials/Qt). 이 [SO 응답] (http://stackoverflow.com/questions/21654948/converting-a-visual-studio-makefile-to-a-linux-makefile/21656515#21656515)에는 CMake 호출 예제가 있습니다. – yegorich

+1

고마워.하지만 가능하다면 나는 CMake가 꽤 효과적으로 보일지라도 메이크 파일을 다시 쓰지 않는 편이 좋을 것이고, 나는 미래의 개인 프로젝트에 확실히 고려 될 것이다. –