서로 종속 된 여러 Qt 프로젝트가 있습니다. 두 프로젝트는 다른 목적 (즉, 주요 응용 프로그램과 단위 테스트)을 가진 실행 파일을 빌드하고 동일한 라이브러리에 의존합니다. 그러나 이러한 라이브러리는 유닛 테스트를 빌드 할 때 다른 컴파일러 설정으로 컴파일해야합니다. 그래서 내 응용 프로그램에 컴파일러 플래그 집합이 필요하고이 플래그 집합도 라이브러리를 컴파일 할 때 기본값이어야한다고 가정합니다. 내 유닛 테스트 애플 리케이션은 컴파일 될 때 라이브러리가 설정되도록 컴파일러 플래그의 또 다른 세트 (또는 추가 세트)를 필요로한다.qmake에 컴파일러 옵션이 추가 된 추가 메이크 파일 타겟
qmake를 한 번 실행 한 다음 결과 메이크 파일을 사용하여 별도의 실행에서 두 앱의 라이브러리를 컴파일 할 수 있도록 qmake *.pro
파일을 작성하려면 어떻게해야합니까? 나는 디폴트를 가지고 있다고 생각했는데 debug
과 release
은 'default'플래그를 가지고 있고 추가 타겟은 test
으로 단위 테스트를 위해 만들었지 만, 어떻게해야 할지를 알 수 없었다. 나는 Qt 4.8에 붙어있다.
일부 배경 : 저는 C++로 프로그래밍 중이며 라이브러리에 정의 된 클래스에 대한 일부 모의 객체를 만들어야합니다. 그러나이 클래스는 virtual
메서드를 포함하지 않으므로 단위 테스트 용으로 컴파일 할 때 virtual
으로 정의되고 그렇지 않으면 비어있는 전 처리기 플래그를 추가했습니다. 이렇게하면 모의 객체의 메소드를 덮어 쓸 수 있지만 릴리즈 빌드에서 가상 함수 호출의 오버 헤드가 발생하지 않습니다.