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 ]를선택해 줍니다. 

이미지 28.png

 

에디션을 선택하고나니 이번엔 라이센스에 대해 물어봅니다.  [ yes ] 를 입력해줍니다.

이미지 29.png

 

옵션설정인데도 꽤 오래 걸립니다.  인내심을 갖고 기다려 주세요...

 

정상적으로 해피하게 옵션지정이 끝나면 아래와 같은 메세지를 보실수 있습니다.

이미지 30.png

 

 

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를 실행 테스트 컴파일할 프로젝트를 생성해 줍니다.

이미지 21.png

 

이미지 22.png

 

이미지 32.png

 

이미지 33.png

 

이미지 35.png

 

 

프로젝트 생성이 완료 됬으면 크로스 컴파일 환경을 설정해 줍니다.

이미지 36.png

 

이미지 37.png

 

/project/qte/bin/qmake파일을 선택

이미지 38.png

 

아래와 같이 컴파일된 QT버전을 인식하게됩니다.

이미지 39.png

 

크로스 컴파일러 탭을 눌러 크로스 컴파일러를 지정해 줍니다.

이미지 41.png

 

 

이미지 42.png

 

/usr/arm-generic-linux-gnueabi/bin 폴더에 GCC를 선택

이미지 43.png

 

정상적으로 인식되면 아래와 같이 ABI정보가 뜨게됩니다.

이미지 44.png

 

kit에서 add버튼을 눌러 크로스 컴파일 키트를 생성해줍니다.

이미지 50.png

 

아래와같이 설정해주면 됩니다.

이미지 45.png

 

 

적용하고 빠져나온뒤 프로젝트 메니저 창에 왼쪽 메뉴에 Projects탭을 클릭해줍니다.

이미지 51.png

 

상단 오른쪽 메뉴에 add kit버튼을 누르면 아래와 같이 qt-arm키트를 선택할수 있습니다.

이미지 52.png

 

선택해주면 아래와 같이 qt-arm으로 컴파일 할수 있게 됩니다.

이미지 53.png

 

왼쪽 메뉴에 모니터 버튼을 클릭하면 위에서 지정한 qt-arm 나 desktop중에 어느것으로 컴파일할지 선택할수 있습니다.

qt-arm을 선택해주고

이미지 54.png

 

[qt-arm]은 [데스크탑] 컴파일과 달리 런버튼[재생버튼]을 누르면 컴파일 되지 않습니다.

[Build]메뉴에 [Build All]을 실행해야 컴파일이 됩니다.

 

이미지 55.png

 

정상적으로 컴파일이 진행되면 프로젝트 생성시 지정했던 디렉토리아래

그림과같이 [파일명_arm-Debug]폴더가 생성되고

이미지 70.png

 

아래그림과 같이 파일이 생성된걸 확인할수 있습니다.

이미지 71.png

 

이제 보드에 올려서 테스트 해보면 됩니다~!!