2012-04-10 2 views
3

다른 Linux 배포판을 실행하는 2 대의 컴퓨터에 코드를 작성한다고 가정합니다.배포판 관련 조건부 컴파일 프로젝트를 만드는 방법

qmake를 만드는 방법은 두 개의 배포판을 구분하고이 두 개의 배포판에 특정 LIBS를 할당하십시오.

예를 들면;

unix: { 

    ubuntu*: { 
      LIBS += -lcxcore -lhighgui -lm 
    } 

    gentoo*: { 
      LIBS += -lopencv_imgproc -lopencv_highgui -lm 
    } 

} 

답변

6

난 당신이 "끝나면 uname -a"를 실행하고 .PRO 파일의 리턴 값을 검사하는 정규 표현식을 사용할 수 있다고 생각 : @rogerzanoni는 "포함"

UNAME = $$system(uname -a) 

contains(UNAME, YourRegExpToMatchGentoo): GENTOO = 1 
contains(UNAME, YourRegExpToMatchUbuntu): UBUNTU = 1 

contains(GENTOO, 1): { 
    LIBS += -lcxcore -lhighgui -lm 
} 

contains(UBUNTU, 1): { 
    LIBS += -lopencv_imgproc -lopencv_highgui -lm 
} 
+1

덕분에 내가 무슨이다 찾고. 'GENTOO = $$ system (cat/proc/version | grep -o Gentoo)' 'UBUNTU = $$ 시스템 (고양이/proc/버전 | grep -o 우분투)' ' 젠투 젠투) { 메시지 (이 젠투이다) LIBS + = -lopencv_imgproc -lopencv_highgui -lm }''포함 (우분투 우분투) { 메시지 (이 우분투이다) LIBS + = -lcxcore -lhighgui -lm }' – tarik