라즈베리파이

ubuntu 18.04 에 QT cross compiler 설치(arm,라즈베리파이)

크게웃기 2020. 2. 26. 22:20
반응형

아놔... 임시 저장된 글은 왜자꾸 날라가지??

 

얼마 전 라즈베리파이를 대량구매 하였다.

나의 경우 ubuntu platform 용 QT Application을 미 구현 완료 해놓았기 때문에

해당 플랫폼에서 QT App을 coretext arm 용으로 컴파일 하여 바로 라즈베리파이에

사용해 보려고 합니다.

 

1. QT source code를 download 한다.
(예전에 x11 용 설정 방법에 기록해 두었다. 아래 링크 참조)

2019/01/31 - [QT] - [QT] Ubuntu 18.04LTS 환경설정에 QT 프레임워크 설치하기(X11 platform 용)

 

[QT] Ubuntu 18.04LTS 환경설정에 QT 프레임워크 설치하기(X11 platform 용)

Ubuntu 18.04LTS 환경설정에 QT 프레임워크 설치하기.(X11 platform 용) ubuntu 에서 아래 web page 접근하여 필요한 QT version 을 Download 한다. http://download.qt.io/archive/qt/ 파이어폭스나, web을 실행..

kakao-pc.tistory.com

2. 압축 해제 및 폴더 진입 후 명령어 입력.

$ ./configuare -embedded arm -xplatform qws/linux-arm-gnueabihf-g++ -debug

 

위와 같이 입력하면 commercial 로 할 것인지, open source로 할 것인지 물어 볼것입니다.

그땐 당연히 Open source로 ㄱㄱㄱ 'O' 그리고 'yes'를 입력하면 된다.

위와 같이 물어 오는게 싫다면 명령어 끝에 '-opensource' 라고 붙여 주면 됩니다.

 

그럼 아래와 같은 configure error가 발생합니다.

   The specified system/compiler is not supported:

      /home/ihchoi/Downloads/qt-everywhere-opensource-src-4.8.7/mkspecs/qws/linux-arm-gnueabihf-g++

   Please see the README file for a complete list.

 

3. 애드블럭 해제시 나타납니다.

3. qws에 gnuebihf 폴더를 생성합니다.

(gnuebihf는 gnuebi에 hard floating 옵션이 주가된 컴파일러 입니다.)

수동으로 다 만들어도 되나, 우린 귀찮니즘을 기본으로 탑제한 프로그래머이니 ctrl + C, ctrl + V 합니다.

$ cd qt-everywhere-opensource-src-4.8.7/mkspecs/qws
$ cp -r linux-arm-gnueabi-g++ linux-arm-gnueabihf-g++

 

이렇게 해주고,

2번 항목을 명령어를 재 실행 합니다.

$ ./configuare -embedded arm -xplatform qws/linux-arm-gnueabihf-g++ -debug

 

실행 완료 후 Makefile 이 생성 될 것입니다.

 

4. make 실행.

$ make

linux-arm-gnueabihf-g++ qmake가 없어서 아래와 같은 error가 발생 할 것입니다.

make[1]: arm-none-linux-g++: Command not found
Makefile:7031: recipe for target '.obj/release-shared-emb-arm/qabstractanimation.o' failed
make[1]: *** [.obj/release-shared-emb-arm/qabstractanimation.o] Error 127
make[1]: Leaving directory '/home/ihchoi/Downloads/qt-everywhere-opensource-src-4.8.7/src/corelib'
Makefile:200: recipe for target 'sub-corelib-make_default-ordered' failed
make: *** [sub-corelib-make_default-ordered] Error 2

그렇기 때문에 아래와 같이 처리를 해줘야합니다.

참고로 해당 블로그는 'sudo apt install gcc-arm-linux-gnueabihf' 설치가 되어져 있다는 가정하에 진행된 것입니다.

 

애드블럭 해제시 나타납니다.

3번에서 생성한 폴더 및 파일을 vi 또는 사용하기 편한 edit를 이용하여 편집합니다.

$ vi qt-everywhere-opensource-src-4.8.7/mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf

:%s/none-linux-gnueabi/linux-gnueabihf

 

내용이 요렇게 되어 변경 될 것입니다.

#
# qmake configuration for building with arm-linux-gnueabihf-g++
#

include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
include(../../common/qws.conf)

# modifications to g++.conf
QMAKE_CC                = arm-linux-gnueabihf-gcc
QMAKE_CXX               = arm-linux-gnueabihf-g++
QMAKE_LINK              = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB        = arm-linux-gnueabihf-g++

# modifications to linux.conf
QMAKE_AR                = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY           = arm-linux-gnueabihf-objcopy
QMAKE_STRIP             = arm-linux-gnueabihf-strip

load(qt_config)

 

5. make 를 다시 합니다.

$ make

 

6. make 완료 후 install 합니다.

$ sudo make install

install 완료 후 해당 폴더 진입시 관련 파일들이 생성되어져 있다.

 

QT source를 이용하여 embedded cross platform 환경 설정을 진행하였습니다.

다음은 인스톨 완료된 컴파일러를 이용하여 QT Creator 설정 및 build를 해보도록 하겠습니다.

 

 

반응형