2014-09-18 1 views
2

QNX, ARM, My Host 플랫폼 용으로 컴파일 할 때 Win32/64, Linux 또는 Mac이 될 수 있습니다. 밀이 내 호스트 플랫폼임을 알 수있는 방법을 찾고 싶습니다. 분명히 사용하여 내 PRO 파일 (컴퓨터에서 나는 건물 내 프로젝트)QMAKE. QT 프로젝트를 크로스 컴파일 할 때 호스트 플랫폼 및 대상 플랫폼을 파악하는 방법

:

win32 {} 
unix {} 
macx {} 

때문에 항상 유닉스를보고 서로 다른 운영체제에서 작동하지 않습니다, 그래서 가정이 대상 플랫폼 이다는 그래서 무엇 현재의 호스트 플랫폼을 얻는 방법은 다른 플랫폼에서 다른 일을하고 싶기 때문에 PRO 파일을 유연하게 만들 수 있습니다.

+0

** 대상 **은 QNX/ARM입니다. [Qmake 설정] (* qt-project.org/doc/qt-5/qmake-environment-reference.html)에서 * HOST * 변수를 볼 수 있습니다. 프로젝트 파일에 대상에 대해 표시하는 것처럼 호스트 OS에 대한 조건부 구문이 있는지 여부는 알 수 없습니다. 예를 들어'message (Host : $$ [QT_HOST_PREFIX])'를 시도해보십시오. Btw, tag [tag : qt5]가 관련이 있거나 Qt4에 있습니까? –

+0

물론 옵션 중 하나! 나는 $$ [QMAKE_SPEC]이 내 경우에 조금 나아질 것이라고 생각한다. –

답변

2

더 나은 다음 아무 것도 얻을 수 없습니다 감사합니다

QMAKE_SPEC_T = $$[QMAKE_SPEC] 

contains(QMAKE_SPEC_T,.*win32.*){ 
    HOST_PLATFORM=WIN 
    IS_WIN = 1 
} 

contains(QMAKE_SPEC_T,.*macx.*){ 
    HOST_PLATFORM=MAC 
    IS_MAC = 1 
} 

contains(QMAKE_SPEC_T,.*linux.*){ 
    HOST_PLATFORM=LINUX 
    IS_LINUX = 1 
} 

다음은 어디서든 확인 :

어쩌면 QMAKE_HOST 변수가 질문에 대한 답변입니다
!isEmpty(IS_WIN):message($${HOST_PLATFORM}) 
!isEmpty(IS_MAC):message($${HOST_PLATFORM}) 
!isEmpty(IS_LINUX):message($${HOST_PLATFORM}) 
2

?

는 호스트 시스템 실행 qmake에 대한 정보를 제공합니다

QMAKE_HOST :

여기 official Qt documentation 정보입니다. 예를 들어 QMAKE_HOST.arch에서 호스트 시스템 아키텍처를 검색 할 수 있습니다.

  • .arch - 호스트 아키텍처
  • .os - 호스트 OS
  • .cpu_count - 사용 가능한 CPU의 수
  • .name을 - 호스트 컴퓨터 이름
  • .version - 호스트 OS 버전 번호
  • .version_string - 호스트 OS 버전 문자열

win32-g++:contains(QMAKE_HOST.arch, x86_64):{ message("Host is 64bit") ... }

관련 문제