정리필요2

QT/E 개발 환경 구축

ShineWithMe 2007. 11. 30. 06:31

QT/Embedded 설치하기


1. 우선 QT/Embedded를 설치하기 위한 설치파일을 다운받는다.


   << 필요 파일 목록 >>
 1] qt-x11-2.3.2.tar.gz
    (ftp://ftp.trolltech.com/qt/source/qt-x11-2.3.2.tar.gz)
 2] qt-embedded-2.3.2.tar.gz
    (ftp://ftp.trolltech.com/qt/source/qt-embedded-2.3.2.tar.gz)
 3] tmake-1.8.tar.gz
    (ftp://ftp.trolltech.com/freebies/tmake/tmake-1.8.tar.gz)


   << 설치 과정 >>

 1] qt-x11-2.3.2.tar.gz 설치

 1) qt-x11-2.3.2.tar.gz파일을 설치할 디렉토리로 옮기고 압축을 푼다.
    # mkdir QT_E
    # mv qt-x11-2.3.2.tar.gz /QT_E
    # tar zxvf qt-x11-2.3.2.tar.gz

 2) 압축이 풀리면 qt-2.3.2라는 디렉토리가 생성된다.
    Embedded용하고 혼동되지 않도록 qt-2.3.2를 qtx-2.3.2으로 변경한다.
    # mv qt-2.3.2 qtx-2.3.2
    # cd qtx-2.3.2

 3) 환경파일 설정
    사용자 계정 디렉토리의 .bash_profile파일에 다음을 추가한 뒤
    설정된 패스를 적용시킨다.
 
  QTDIR=/QT_E/qtx-2.3.2
  PATH=$QTDIR/bin:$PATH
  MANPATH=$QTDIR/doc/man:$MANPATH
  LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

  export QTDIR PATH MANPATH LD_LIBRARY_PATH


    # source ./.bash_profile  // 사용자 계정의 폴더

 4) 설정한 패스가 정용되었는지 etho명령어를 사용해서 테스트 한다.
    # etho $QTDIR
    # etho LD_LIBRARY_PATH

 5) 환경설정이 다 되었으면 configure를 실행한다.
    실행뒤에 라이센스 동의를 묻는다. 이때 "yes"를 입력하면 Makefile이 생성된다.
    Makefile이 생성된 뒤 make를 시킨다.
    make의 과정은 컴퓨터의 사양에 따라서 몇 십분까지 걸릴 수 있다.
    # ./configure
    # make
 
 -----------------------------------------------------------------------
 - # 오류 발생에 대해서...
 -----------------------------------------------------------------------
 - make과정중 오류가 2개 뜨며 종료되면 메시지를 확인한다. 메시지를 확인하면 
 - g++프로그램이 설치되어 있지 않아서 발생하는 오류일 수도 있고, freetype.h를
 - 찾을수 없다고 오류가 뜰 수도 있다. g++이 없다면 설치해 주어야 하며, freetype.h
 - 파일을 찾을수 없다면 다음과 같은 과정으로 해결한다.
 - /usr/include폴더에 freetype1, freetype2의 폴더는 존재하는데 freetype폴더는
 - 존재하지 않을 것이다. 이때 freetype2/freetype폴더를 소프트 링크 시킨다.
 -
 - # ln -s /usr/include/freetype2/freetype /usr/include/freetype
 -
 -----------------------------------------------------------------------


 2. QT Virtual Framebuffer(qtvb)설치
   
 <주의사항>
    다음단계에서 설치할 QT/Embedded소스에도 같은 qvfb가 존재하지만 이 qvfb는
      올바르게 동작하지 않는다. 그래서 반드시 QT/X11용으로 컴파일된 것을 사용해야 한다.

 1) qtvb는 따로 설치프로그램이 존재하는 것이 아니라 qt-x11을 설치하면
    자동으로 설치된다. 그럼 qtvf가 설치되어있는 디렉토리로 이동하여 메이크 시킨다.

    # cd /QT_E/qtx-2.3.2/tools/qvfb
    # make

 2) 설치가 모두 되었다면 실행시켜 본다. 실행옵션은 640*480 크기에 컬러 수는
    16비트이다.

    # ./qvfb -width 640 -height 480 -depth 16 &

 3) 이제 qvfb프로그램의 위치를 PATH에 저장한다.

    # cp QT_E/qtx-2.3.2/tools/qvfb/qvfb QT_E/qtx-2.3.2/bin

    /root/.bash_profile파일에 아래의 문장을 추가한다.
   
  PATH=/QT_E/qtx-2.3.2/bin:$PATH
  export PATH

 -----------------------------------------------------------------------
 - # 알아두기
 -----------------------------------------------------------------------
 - * Framebuffer
 - Framebuffer는 원래 VESA라고 하는 비디오 장치를 생산하는 업체들의 표준 협의회라
 - 할 수 있는 단체에서 정한 표준이다. 대략 97년도 정도 이후로 나오는 모든 비디오 장치들은
 - 이 Framebuffer장치로 사용이 가능하다.

 - Framebuffer 장치는 그래픽 하드웨어를 위해 분리된 것이다.
 - 그것은 어떤 비디오 하드웨어의 Framebuffer를 말하기도 하고, 그래픽 하드웨어에 접근하기

 - 위해 허락된 응용 프로그램을 말하기도 한다. 소프트웨어는 저 수준장치에 대해 어떤 것도

 - 알 필요가 없고, 그러므로 소프트웨어 개발 시에 각각의 다른 비디오 하드웨어에 따라서

 - 다르게 개발할 필요가 없다.

 - * qvfb 프로그램
 - 임베디드 기기에서는 X를 지원하지 못한다. X를 지원하기에는 기기의 성능이 부족하기

 - 때문이다. 그래서 기기에서는 비디오 출력을 위해서 비디오카드의 정보와는 독립적인

 - 프레임버퍼를 사용한다. - 그래서 우리가 개발 HOST에서 QT를 이용해서 임베디드 기기용

 - 어플리케이션을 개발할 때에는 이 어플리케이션이 Framebuffer상에서 실행시켜 봐야 한다.

 - 이때 쓰이는 것이 바로 qvfb프로그램이다.
 - qvfb는 X상에서 Framebuffer를 구현해 주는 역할을 한다.
 -----------------------------------------------------------------------


 3. QT/Embedded 설치
 
 1) qt-embedded-2.3.2.tar.gz파일을 설치할 디렉토리로 옮기고 압축을 푼다.

    # mv qt-embedded-2.3.2.tar.gz /QT_E
    # tar zxvf qt-x11-2.3.2.tar.gz

 2) 압축이 풀리면 qt-2.3.2라는 디렉토리가 생성된다. qt-2.3.2를 qte-2.3.2으로 변경한다.

    # mv qt-2.3.2 qte-2.3.2
    # cd qte-2.3.2

 3) 환경파일 설정
    사용자 계정 디렉토리의 .bash_profile파일에 이전에 설정했던 QTDIR부터 아래와 같이 수정한 뒤
    설정된 패스를 적용시킨다.
 
  QTDIR=/QT_E/qte-2.3.2
  LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

  export QTDIR LD_LIBRARY_PATH

    # source ./.bash_profile  // 사용자 계정의 폴더

 4) 환경설정이 다 되었으면 configure를 실행한다.

    # ./configure

    - 실행뒤에 라이센스 동의를 묻는다면 이때 "yes"를 입력한다.
    - Feature configuration은 일단 5번 Everything을 선택한다.
    - Color depth는 16을 입력한다.
    - Qt Virtual Framebuffer를 지원하겠냐고 묻는다면 이때 "yes"라고 입력한다.

    Makefile이 생성된 뒤 make를 시킨다.
    make의 과정은 컴퓨터의 사양에 따라서 몇 십분까지 걸릴 수 있다. (내 컴은 2시간 ㅡ.ㅡ)

    # make
 5) 설치가 다 되었다면 예제 프로그램을 실행해 보자.

    # ./qvfb -width 640 -height 480 -depth 16 &
    # cd $QTDIR/examples/hello
    # ./hello
 
 -----------------------------------------------------------------------
 - # 알아두기
 -----------------------------------------------------------------------  
 - * Feature란
 - Minmal(630KB)
 - Small(960kB)
 - Medium(1.5MB)
 - Large(3MB)
 - Everything(5MB)
 - Your own local configuration
 - 이렇게 6개를 지원한다. 그래서 각 임베디드 기기의 용량에 맞는 컴파일 모델을 선택할 수 있다.
 - 6번은 $QTDIR/src/tools/qconfig-local.h파일에서 자신의 작업환경에 맞도록 customaize할

 - 수 있다. 실제 작업을 할 때에는 필요한 최소한 용량만을 사용해야 하기 때문에 6번으로

 - 하는 것이 일반적이다.
 -----------------------------------------------------------------------  


 4. tmake 설치
 
 1) tmake-1.8.tar.gz파일을 설치할 디렉토리로 옮기고 압축을 푼다.

    # mv tmake-1.8.tar.gz /QT_E
    # tar tmake-1.8.tar.gz

 2) 이제 tmake-1.8 디렉토리가 생겼을 것이다. 설치에서 컴파일은 필요없고, 환경설정만 해주면

     된다.
    /root/.bash_profile파일에 아래 내용을 추가한뒤 적용시킨다.


  TMAKEPATH=/QT_E/tmake-1.8/lib/qws/linux-x86-g++
  PATH=$PATH:/QT_E/tmake-1.8/bin

  export TMAKEPATH PATH


    # source ./.bash_profile  // 사용자 계정의 폴더


3) 이로써 tmake의 설치를 끝낸다. 

 




      Embedded Linux

 

주제 : QT/E 개발 환경 구축

 

1. gcc 컴파일러 재 설치

 

. /usr/local/gcc2953 디렉토리를 생성하고 gcc-295.3.tar.gz을 해당 디렉토리에 복사한다.

# mkdir –p /usr/local/gcc2953

# ftp로 전송받거나 cd에서 복사한다.

 

. 압축을 푼 후 환경설정과 컴파일하여 재 설치한다.

# cd /usr/local/gcc2953

# tar zxvf gcc-2.95.3.tar.gz

# cd gcc-2.95.3

# ./configure --prefix=/usr/local/gcc2953

# make

# make install

 

. 설치가 정상적으로 이루어져 있으면 환경변수에 등록하여 사용한다.

# vi ~/.bash_profile

PATH=$PATH:/usr/local/cross-tools/bin

PATH=/usr/local/gcc2953/bin:$PATH

export USERNAME BASH_ENV PATH (없으면 추가)

# source ~/.bash_profile

 

. 설치확인

gcc –v 를 수행하여 아래와 같이 출력되면 정상적으로 설치가 종료된 것이라 볼 수 있다.

 

# gcc –v

* 환경 변수 설정시 $PATH의 위치에 따라 새로 설치한 컴파일러 보다 이전 리눅스 컴파일러를 실행할 수 있다. 위치를 동일하게 편집한 후 다시 source로 적용시켜 새로 설치한 컴파일러가 먼저 실행될 수 있도록 조치 하자.

 

2. Qt/X11 설치

 

. 해당 파일을 저장하고 압축을 풀 working 디렉토리 생성

# mkdir /working

# cd /working

 

. ftp CD에서 Qt 가상 프레임 파일을 복사하여 압축을 해제하자.

필요한 파일 : Tools/qt/qtx/qt-x11-2.3.2.tar.gz

# cd /working/

# tar zxvf qt-x11-2.3.2.tar.gz

# mv qt-2.3.2/ /working/qtx-2.3.2

* 압축이 풀린 디렉토리명을 qt-2.3.2 에서 qtx-2.3.2로 변경하는 이유는 차후 설치하게 될 qte와 구별하기 좋게 하기 위함이다.

. Qt/X11을 컴파일 할때 사용할 라이브러리 디렉토리들을 환경변수를 사용하여 연결해 놓는다.

# export QTDIR=/working/qtx-2.3.2

# export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

 

. 환경 설정 후 컴파일 한다.

# cd /working/qtx-2.3.2

# ./configure

# make

* make 에서 오류가 발생하면 ./configure –no–xft 를 사용하여 환경 설정.

 

3. Qt 가상 프레임 버퍼(qvfb)

 

. qvfb 컴파일

# cd $QTDIR/tools/qvfb

# make

 

. 경로 설정

# export PATH=/working/qtx-2.3.2/tools/qvfb:$PATH

 

4. x86 Qt/E 라이브러리 설치

 

호스트 컴퓨터에서 QT/E 프로그램을 테스트 할 수 있도록 x86 Qt/E 라이브러리를 설치하자.(일종의 애물레이터)

 

. 필요한 파일을 /working 디렉토리에 복사하거나 전송 받는다.

필요한 파일 : /Tools/qt/qte/qt-embedded-2.3.2.tar.gz

# cd working

# tar zxvf qt-embedded-2.3.2.tar.gz

# mv qt-2.3.2 qte-2.3.2

# mkdir /working/qte-x86

# cp –rf qte-2.3.2 /working/qte-x86

 

. qte를 위한 환경 파일을 하나 만들어서 적용 시키자.

# cd /working

# vi qte_env

# source qte_env

* 환경파일 내용 내용(qte_env)

export PATH=$PATH:/working/qtx-2.3.2/tools/qvfb

export QTDIR=/working/qte-x86/qte-2.3.2

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

 

. 컴파일 하자.

# cd $QTDIR

# ./configure ( yes -> 5 -> 16 -> yes 순으로 입력)

# make

 

. 애물레이터(qvfb) 실행

# qvfb –width 640 –height 480 –depth 16 &

# ./examples/launcher/launcher -qws

* QTDIR 하위 디렉토리인 sample 디렉토리에 예제 프로그램들을 실행해 보자.

launcher –qws 실행화면