그래픽 & 멀티미디어
FA-VUS에 QT embedded 개발환경 구축하기 두번째 강좌입니다.
이번강좌의 내용은 QT Embedded 설치 하고 이를 지난시간에 설치한 QT Creator에 연동시키는 방법 입니다.
먼저 지난시간에 /project/qt 폴더에 저장했던 qt-everywhere-opensource-src-4.7.4.tar.gz 파일을 압축해제 해줘야겠죠?
터미널을 실행 /project/qt 폴더로 이동하여 qt-everywhere-opensource-src-4.7.4.tar.gz 을 압축 해제합니다.
cd /project/qt
sudo tar -zxvf qt-everywhere-opensource-src-4.7.4.tar.gz
자~이제 본격적으로 한번 설치해 보도록 하죠~
1. QT Embedded 환경설정
크로스 컴파일러에 맞춰 [qmake.conf]을 수정해 줍니다.
(기본적으로 [FA-VUS]에 설치된 크로스 컴파일러는 arm-generic-linux-gnueabi-gcc입니다.)
/project/qt/qt-everywhere-opensource-src-4.7.4/mkspecs/qws/linux-arm-g++ 디렉토리에
[qmake.conf]파일을 아래와 같이 수정합니다.
# modifications to g++.conf
QMAKE_CC = arm-generic-linux-gnueabi-gcc
QMAKE_CXX = arm-generic-linux-gnueabi-g++
QMAKE_LINK = arm-generic-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-generic-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-generic-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-generic-linux-gnueabi-objcopy
QMAKE_STRIP = arm-generic-linux-gnueabi-strip
2. QT Configure옵션 지정
QT 를 Embedded 보드에 올리려면 타깃보드에 맞춰 QT Configure옵션을 지정해 주어야 합니다.
아래와 같이 옵션을 주고 실행하면 이에 맞춰 컴파일이 됩니다.
./configure -prefix /project/qte -xplatform qws/linux-arm-g++ -embedded arm -little-endian -no-neon -release -no-largefile -no-accessibility -no-qt3support -qt-zlib -qt-gif -qt-libpng -no-libmng -qt-libjpeg -no-libtiff -no-nis -no-cups -qt-freetype -depths 16,24,32
옵션이 다양하고 많아서 정리가 잘안되실텐데요
간략하게 옵션에 대해 살펴보면
-prefix /project/qte 는 옵션지정된 타깃보드에 맞춰 qmake가 저장될 위치입니다.
-xplatform qws/linux-arm-g++ 는 크로스 컴파일러로 아까수정해준 qws/linux-arm-g++ 폴더에 qmake.conf파일을 참조하라는 옵션
-embedded arm 말안해도 잘아실 arm코어 기반의 임베디드 보드라는 옵션
-little-endian 타겟플랫폼이 little endian (LSB first)이라고 알려주는 옵션
-no-neon arm코어의 neon을 사용하지 않겠단 옵션
그외에 각종 이미지나 라이브러리에 관련된 옵션입니다.
기타 자세한 옵션이 궁금하신분은 아래 링크에서 확인하실수 있습니다.
http://radekp.github.io/qtmoko/api/buildsystem/over-configure-options-qt-embedded-1.html
옵션을 지정해주면 아래와 같이 에디션을 물어보는데요 저희는 오픈소스인 관계로 [ o ]를선택해 줍니다.
에디션을 선택하고나니 이번엔 라이센스에 대해 물어봅니다. [ yes ] 를 입력해줍니다.
옵션설정인데도 꽤 오래 걸립니다. 인내심을 갖고 기다려 주세요...
정상적으로 해피하게 옵션지정이 끝나면 아래와 같은 메세지를 보실수 있습니다.
3. make & make install
정상적으로 옵션지정이 끝나면 컴파일 해줘야 겠죠?
먼저 make를 해줍니다. 옵션지정과 비교할수 없을 만큼 오래 오래 걸립니다.
make가 정상적으로 끝나면 make install도 해줘야 됩니다. 오래 오래 오래 걸립니다.
잠깐 사설을 얘기 하자면 make가 엄청 느린관계로 [FA-VUS]버추얼 박스 옵션을 확인해 보니
CPU는 1개 메모리는 512MB로 되어있더군요~!!!
아~! 그래서 느리겠네 하고 CPU 2개 메모리는 1024MB로 옵션을 바꿔주면 좀빠르겠지??....ㅎㅎㅎ
라고 생각해서 바꿔주고 실행하니 에러메세지 뜨면서 동작도 안하더군요....;;;
나중에 알고 보니 메모리는 괜찮은데 CPU는 변경해주면 동작을 안하더라구요
mkae 옵션중에 CPU 코어 2개를 이용해 컴파일하는 옵션있던데 (make -j2였나?)
누가 좀 해결해주시면 감사하겠어요~~ㅠㅠ
4. QT Creator에 연동시키기
해피하게 기나긴 컴파일이 끝났으니 이제 테스트를 해봐야 겠죠?
우분투 파일관리자를 실행 /home/falinux/Qt5.0.2/Tools/QtCreator/bin/에 qtcreator를 실행합니다.
File메뉴에 New File or Project를 실행 테스트 컴파일할 프로젝트를 생성해 줍니다.
프로젝트 생성이 완료 됬으면 크로스 컴파일 환경을 설정해 줍니다.
/project/qte/bin/qmake파일을 선택
아래와 같이 컴파일된 QT버전을 인식하게됩니다.
크로스 컴파일러 탭을 눌러 크로스 컴파일러를 지정해 줍니다.
/usr/arm-generic-linux-gnueabi/bin 폴더에 GCC를 선택
정상적으로 인식되면 아래와 같이 ABI정보가 뜨게됩니다.
kit에서 add버튼을 눌러 크로스 컴파일 키트를 생성해줍니다.
아래와같이 설정해주면 됩니다.
적용하고 빠져나온뒤 프로젝트 메니저 창에 왼쪽 메뉴에 Projects탭을 클릭해줍니다.
상단 오른쪽 메뉴에 add kit버튼을 누르면 아래와 같이 qt-arm키트를 선택할수 있습니다.
선택해주면 아래와 같이 qt-arm으로 컴파일 할수 있게 됩니다.
왼쪽 메뉴에 모니터 버튼을 클릭하면 위에서 지정한 qt-arm 나 desktop중에 어느것으로 컴파일할지 선택할수 있습니다.
qt-arm을 선택해주고
[qt-arm]은 [데스크탑] 컴파일과 달리 런버튼[재생버튼]을 누르면 컴파일 되지 않습니다.
[Build]메뉴에 [Build All]을 실행해야 컴파일이 됩니다.
정상적으로 컴파일이 진행되면 프로젝트 생성시 지정했던 디렉토리아래
그림과같이 [파일명_arm-Debug]폴더가 생성되고
아래그림과 같이 파일이 생성된걸 확인할수 있습니다.
이제 보드에 올려서 테스트 해보면 됩니다~!!
- 이미지 28.png (45.0KB)(239)
- 이미지 29.png (40.2KB)(215)
- 이미지 30.png (74.2KB)(239)
- 이미지 21.png (36.0KB)(260)
- 이미지 22.png (59.9KB)(247)
- 이미지 23.png (36.9KB)(194)
- 이미지 32.png (35.4KB)(209)
- 이미지 33.png (44.0KB)(187)
- 이미지 35.png (34.2KB)(209)
- 이미지 36.png (44.2KB)(194)
- 이미지 37.png (65.3KB)(219)
- 이미지 38.png (50.8KB)(199)
- 이미지 39.png (86.8KB)(198)
- 이미지 41.png (62.7KB)(203)
- 이미지 42.png (17.3KB)(229)
- 이미지 43.png (107.9KB)(207)
- 이미지 44.png (77.7KB)(213)
- 이미지 50.png (65.1KB)(205)
- 이미지 45.png (94.6KB)(213)
- 이미지 50.png (65.1KB)(206)
- 이미지 51.png (139.0KB)(243)
- 이미지 52.png (40.4KB)(287)
- 이미지 53.png (41.5KB)(201)
- 이미지 54.png (43.2KB)(200)
- 이미지 55.png (59.3KB)(276)
- 이미지 70.png (74.3KB)(186)
- 이미지 71.png (43.7KB)(223)
보드에 qte-test 파일만 올리면 실행되나요? 보드에 올리는 방법을 모르겠어요..