2009-06-08 4 views

답변

0

물론 Qt Creator를 Linux에 설치할 수 있습니다. 동일한 Qt 코드를 사용하여 Linux/Win32/Mac에서 컴파일 할 수 있습니다. 그러나 플랫폼 전용 코드는 다음 위치에서만 사용해야합니다.

#ifdef Q_OS_WIN32 
    qDebug() << "Executable files end in .exe"; 
#endif 

다른 운영 체제에 대한 다른 정의가 있습니다. 그렇게한다면, 당신은 안전하며, 플랫폼 간 코드라고 확신 할 수 있습니다. :-)

http://www.qtsoftware.com/downloads을 참조 하시고 Qt SDK for Linux/X11을 다운로드하십시오. Qt Creator, Assistant, Designer 등이 포함되어 있습니다.

+0

사실 나는 리눅스에서 QT를 사용하여 실행 가능한 윈도우를 생성해야하며 나의 요구 사항은 윈도우 QT 바이너리 만 설치하고 리눅스에서 생성 한 실행 파일을 실행해야한다고 말한다. 그래서 제발 내가 리눅스와 QT 이클립스 통합 리눅스를 사용하여 실행할 수있는 리눅스와 윈도우 모두를 만들 수 있습니다 전화 해주십시오. 내 프로그램에서 Linux 실행 파일을 가져올 수 있지만 Linux에서 동일한 실행 파일을 실행하는 방법은 무엇입니까? –

+0

이것은 리눅스에서 Windows 용으로 크로스 컴파일하는 방법에 대한 링크입니다. - http://silmor.de/29 –

-1

Eclipse의 경우 official plugin이 있습니다. C++

이클립스 플러그인에 대한

Qt는 이클립스 통합

는 4.1.0 이후 어떤 Qt는 버전 를 사용하여 프로그램을 만들 로 사용할 수 있습니다.

+0

질문에 대답하지 않고 이미 Qt 용 Eclipse를 사용하고 있습니다. –

0

몇 시간 전이 작업을 수행하려고했는데 여기에서 크로스 컴파일에 대한 리소스를 찾았습니다 : . 마지막으로 윈도우즈에서 win32 버전을 컴파일했는데 시간이 부족했기 때문에 가능했다.

3

리눅스에서 Windows 바이너리를 빌드하려면 크로스 컴파일해야합니다. 즉, 크로스 컴파일러가 설치된 과 연결된 라이브러리와 함께 Windows 교차 컴파일러가 설치되어 있어야합니다.. 기본적인 Qt 프로그램의 경우 이것은 적어도 크로스 컴파일 된 Qt가 필요하다는 것을 의미합니다.

크로스 컴파일은 Eclipse 또는 Qt Creator와 아무 관련이 없습니다. 두 가지 모두 지원되지 않는다고 생각하지만, 그렇게 할 수 있다고 생각합니다.

+0

사실 저는 QT를 사용하여 리눅스에서 실행 가능한 Windows를 생성해야하며, 제 요구 사항에 따르면 Windows QT 바이너리 만 설치하고 Linux에서 생성 한 실행 파일을 실행해야합니다. Linux에서 QT Eclipse 통합을 사용하여 Linux 및 Windows 실행 파일을 모두 만들 수 있습니까? –

+0

내 프로그램에서 리눅스를 실행 가능하게 만들 수 있지만, 리눅스에서 동일한 실행 파일을 실행할 수있는 방법은 무엇입니까? –

+1

죄송합니다. 그러나 귀하의 질문은 분명하지 않습니다. Linux에서 Windows 바이너리를 크로스 컴파일하려면 먼저 Qt를 크로스 컴파일해야하며 직접해야합니다. 모든 OS에 대해 사전 패키지 된 크로스 컴파일 Qt를 보지 못했습니다. Qt Eclipse 통합으로 바이너리가 전혀 생성되지 않습니다. 컴파일러를 실행하고 Linux에서 Windows 바이너리를 빌드하려면 크로스 컴파일러가 필요합니다. – bluebrother

-3

은 Windows에서 실행 가능하지만 Linux에서는 작동하지 않으며 그 반대의 경우도 마찬가지입니다. 당신은 이것을 할 수있다 :

#ifdef Q_WS_X11 
QString *OS=new QString("Linux"); 
std::cout << OS->toStdString() << std::endl; 
#endif 
#ifdef Q_WS_WIN 
QString *OS=new QString("Windows"); 
std::cout << OS->toStdString() << std::endl; 
#endif 
#ifdef Q_WS_MACX 
QString *OS=new QString("Mac"); 
std::cout << OS->toStdString() << std::endl;  
#endif 
+2

무엇을 원하십니까? 이 코드의 문제는 무엇입니까? 그것은 내가 사용하는 OS를 입력하는 것입니다. 그 밖의 것은 없습니다. 이해가 안 돼요 ... – Tebe

관련 문제