2009-10-02 3 views
6

Qt 기반 응용 프로그램을 개발 중이며 동일한 소스, 스크립트 등을 공유하는 32 비트 및 64 비트 버전의 응용 프로그램을 동일한 컴퓨터에서 개발하고 싶습니다. 이 컴퓨터는 Ubuntu Jaunty 64 비트, Intel 코어 i7, 8GB 램. VMWare를 실행하거나 VirtualBox를 실행하면 문제가 발생한다는 것을 알고 있습니다 만, 프로세서 (i7)를 충만하게 사용하고 싶기 때문에 좋은 해결책이 아닌 것 같습니다. 나는 chrooted 환경에 대해 읽었는데, 그것은 나에게 내가 찾고있는 설정 일 수있는 것처럼 보인다. 나는 또한 개발 된 컴퓨터가 방금 빌드 한 실행 파일을 실행할 수 있어야한다.32 비트 * 및 * 64 비트 Qt 응용 프로그램 개발을위한 최고의 우분투 설정?

경험이 있습니까? 32 비트 chrooted env를 64 비트 호스트에 설치 했습니까? 잘 작동합니까? 올바르게 설정하는 방법?

답변

5

나는 비슷하지만 정확한 것은 아니 었습니다. 64 비트 Jaunty에서 실행되는 동안 32 비트 Windows 용 Qt4 응용 프로그램을 개발하고있었습니다. chroot 된 환경은 32 비트 응용 프로그램을 컴파일하기 위해 chroot를해야한다는 사소한 불편 함으로 원하는 것을 제공합니다.

Windows 용으로 컴파일을 한 이유는이 목적을 위해 특별히 크로스 컴파일러를 설정 한 것이 었습니다. 아마 그렇게하지 않아도됩니다. 32 비트로 컴파일하는 g ++ -m32로 도망 갈 수 있습니다. makefile을 수천 번 편집하는 것을 피하기 위해, "qmake -project & & qmake -makefile spec blablabla"와 같이 Qt와 함께 제공되는 specfiles을 생성/수정/사용할 수 있습니다. 명령이 제대로 작동하는지).

+0

"/mkspecs /"에는 linux-g ++ - 32와 linux-g ++ - 64가 모두 포함되어 있으며, 특히 -m32와 -m64가 추가 된 것으로 밝혀졌습니다. 그러나 내가 chrooting의 pratical 아니에요 그래서 내가 가이드 또는 무언가를 어떻게 그것을하고 내가 모호한 점을 지우려면 뭔가를 찾고 있어요, 즉, 내가 chrooted 32 비트 애플 리케이션을 실행하기위한 다른 Xserver를 시작해야합니까 ? – Manuel

+0

mkspec을 사용하는 경우 chroot를 사용할 필요가 없습니다.시스템에 32 비트 및 64 비트 libs가 모두 설치되어 있어야하지만 그 후에는 "qmake -project && qmake -makefile linux-g ++ - && make"를 실행할 수 있습니다. 그런 다음 원하는 비트를 만들어야합니다. – ZachS

+0

물론 당신은 ZachS입니다, 나는 일을 조금 justconfused : 나는 먼저 mkspecs를 시도 할거야. – Manuel

3

나는 비슷한 상황도있어, 여기에 내가 일을하는 방법은 다음과 같습니다

내가 Qt는의 사용자 정의 내장 버전을 사용하십시오. 나는 -platform 매개 변수를 제외한 동일한 구성 옵션을 사용하여 Qt를 두 번 빌드합니다. 첫 번째 빌드에서는 linux-g ++ - 64, 두 번째 빌드에서는 linux-g ++ - 32으로 설정합니다. 또한 -prefix을 사용하여 두 버전을 별도의 디렉토리에 설치하십시오.

QtCreator를 사용하여 앱을 만듭니다. 옵션 -> Qt4 -> Qt 버전 대화 상자에 Qt 버전을 모두 추가했습니다. 그런 다음 동일한 빌드 옵션을 사용하여 프로젝트에 대한 두 가지 빌드 구성을 설정합니다. 하나는 32 비트 Qt 디렉토리를 사용하고 다른 하나는 64 비트 Qt 디렉토리를 사용합니다. 그런 다음 QtCreator가 모든 마법을 처리하고, 32 비트 및 64 비트 Qt 앱을 모두 갖기 위해 빌드 구성을 번갈아 가며 교체해야합니다. 아니 chroot, 아니 VM, 아무것도, 그냥 간단한 빌드.

하나의주의 사항이 있습니다. 32 비트 용 Qt를 빌드하려면 ia32-libs 및 lib32stdC++ 6을 사용하여 Ubuntu Jaunty에서 쉽게 얻을 수있는 대부분의 개발 라이브러리 (X libs, stdlibs 등)의 32 비트 버전이 필요합니다. 필자가 64 비트 아키텍처에서 32 비트 개발을 위해 찾지 못한 유일한 라이브러리는 gstreamer 라이브러리이며 Phonon은 작동하지 않을 수 있습니다. Phonon이 필요했기 때문에 VM에 Qt를 빌드 한 다음 Qt의 설치된 디렉토리를 내 컴퓨터로 다시 복사하여 작업을 시작했습니다.

행운을 빈다.

+0

감사합니다, 이것을 찾고있었습니다. 제안한 VM 방법을 시도해 보겠습니다 – KGCybeX

+0

솔루션을 쿼리해야합니다. Ubuntu 16.04 (i386/32bit) VM에 Qt5.5.1을 구축하고 있습니다. 일반적인'./configure -prefix/path/to/Qt5-5-1/install /'및 라이센스 허용 플래그 옆에 특정 플랫폼이나 관련 플래그를 지정 했습니까? 나는 ./configure -opensource -nomake examples -nomake tests -confirm-license -prefix/opt/qt-5.5.1'을 사용하고 있습니다. 이것은 친숙한 것 같습니까? – KGCybeX