'Education/QT programming'에 해당되는 글 4건

  1. 2009.11.04 madplayer by 초상큼발랄 4
  2. 2009.11.03 mount by 초상큼발랄 7
  3. 2009.09.04 Signal 과 Slot 예제 by 초상큼발랄
  4. 2009.09.04 QT designer 4 by 초상큼발랄

madplayer

Education/QT programming 2009. 11. 4. 20:11


리눅스 Fedora 11 에서 320B Target board 로 사용

 

1. 크로스 컴파일러

/usr/local 에 arm-linux-4.1.1 버전 복사하고 path 지정

2. zlib-1.2.3 설치

압축 풀고 ./configure

Makefile 수정
  CC=cc 를 CC=arm-linux-gcc 로 수정
  AR=ar rc 를 AR=arm-linux-ar rc 로 수정
  RANLIB=ranlib 를 RANLIB=arm-linux-ranlib 로 수정
  prefix = /usr/local 를 prefix = /usr/local 로 수정
수정후 make
  arm-linux-gcc: installation problem, cannot exec `cpp0': No such file or directory  <<  make중 에러 발생시
$ arm-linux-gcc -print-search-dirs   << 이 명령어로 경로 확인

3. madplayer 설치

  export CC=arm-linux-gcc
  export CXX=arm-linux-gcc
  export CPPFLAGS='-I../libmad-0.15.1b -I../libid3tag-0.15.1b -I../zlib-1.2.3'
  export LDFLAGS='-L../libmad-0.15.1b -L../libid3tag-0.15.1b -L../zlib-1.2.3'


libid3tag-0.15.1b 컴파일
  ./configure --host=arm-linux
  make
  cp .libs/libid3tag.a  ./

libmad-0.15.1b 컴파일
  ./configure --host=arm-linux
  make
  cp .libs/libmad.a  ./

madplay-0.15.2b 컴파일
  ./configure --host=arm-linux
  make
  file madplay(확인 부분)
  cp madplay ../bin

madplay의 라이브러리를 미리 만들어 놓은 lib 로 복사
  cd libid3tag-0.15.1b/.libs
  cp -dpR libid3tag.so* ../../lib
  cd ../../
  cd libmad-0.15.1b/.libs
  cp -dpR libmad.so* ../../lib
  cd ../../

타겟보드로 복사해서 실행!
Illegal instruction   << 이라고 뜨며 실행이 안되는경우!!
크로스 컴파일러 라이브러리와 타겟보드의 라이브러리가 맞지 않아서 생기는 문제이다
크로스 컴파일러의 라이브러리를 타겟 보드에서 수행이 되도록 맞춰주어야 한다.

4. nfs를 통해 lib bin 디렉토리를 이동

5. 노래를 bin 디렉토리에 추가

6. ./madplay 노래제목.mp3

'Education > QT programming' 카테고리의 다른 글

mount  (7) 2009.11.03
Signal 과 Slot 예제  (0) 2009.09.04
QT designer 4  (0) 2009.09.04
Posted by 초상큼발랄
l

mount

Education/QT programming 2009. 11. 3. 15:12

mount 방법

1. 우선 설정을 한다.

나는 /work/qt 폴더를 생성하여 이곳에 마운트를 시킬 것이다.

# vi /etc/exports

/work/qt *(rw, no_root_squash)

2. Host PC 설정

# cd /work/qt

/work/qt 경로로 들어갈 것이다.

# ls /usr/local/

/usr/local/ 폴더에 복사할 내용을 확인

#cp -rf /usr/local/ts-1.0 /work/qt

/usr/local/에 존재하는 ts-1.0 폴더를 /work/qt/폴더에 복사

#ls /usr/local/Trolltech/QtopiaCore-4.3.3-arm/

/usr/local/Trolltech/폴더 안에 QtopiaCore-4.3.3-arm존재유무확인

#cp -rf /usr/local/Trolltech/QtopiaCore-4.3.3-arm/lib /work/qt

/usr/local/Trolltech/QtopiaCore-4.3.3-arm/ 폴더에 있는 lib 폴더를 /work/qt 폴더에 복사

3. Target Board 설정

#mount

#mkdir /tmp

#ping 192.168.100.41

host pc의 ip address

#mount -t nfs -o nolock, rsize=1024, wsize=1024, 192.168.100.41:/work/qt /tmp

host pc의 /work/qt 폴더를 tartget board의 /tmp 폴더와 마운트

#cd /tmp

'Education > QT programming' 카테고리의 다른 글

madplayer  (4) 2009.11.04
Signal 과 Slot 예제  (0) 2009.09.04
QT designer 4  (0) 2009.09.04
Posted by 초상큼발랄
l

<foo.h>

  #ifndef __FOO_H_
  #define __FOO_H_
  
  #include <QObject>
  
  class Foo : public QObject
  {
      Q_OBJECT
  
      public:
          Foo() {}
          int value() const { return val; }
  
          public slots:
              void setValue(int v)
              {
                  if(v != val)
                  {
                      val = v;
                      emit valueChanged(v);
                  }
              }
  
      signals:
          void valueChanged(int);
  
      private:
          int val;
  };
  
  #endif


<foo.cpp>        

  #include <QApplication>
  #include <iostream>
  
  using namespace std;
  
  #include "foo.h"
  
  int main(int argc, char ** argv)
  {
      QApplication app(argc, argv);
      Foo a,b;
      int ret;
  
      QObject::connect(&a, SIGNAL(valueChanged(int)), &b, SLOT(setValue(int)));
      b.setValue(11);
      a.setValue(79);
      ret = b.value();
  
      cout << ret << endl;
  
      return 0;
  }       



-> 출력 79

'Education > QT programming' 카테고리의 다른 글

madplayer  (4) 2009.11.04
mount  (7) 2009.11.03
QT designer 4  (0) 2009.09.04
Posted by 초상큼발랄
l


# cd /qtwork/

# mkdir Hello_World

# cd Hello_World


# $QTDIR

# source /work/qtx/qtx_env

# designer //Designer 실행

# uic hello_world.ui > ui_hello_world.h

# vi hello_world.h

#ifndef __HELLODLG_H__
#define __HEELLODLG_H__

#include <QDialog>
#include "ui_hello_world.h"

class QPushButton;
class QTextBrowser;

class Hello_World : public QDialog
{
Q_OBJECT

public:
Hello_World();

public slots:
void pb_ok_clicked();

private:
Ui::Hello_World ui;
};

#endif
# vi hello_world.cpp
#include <QPushButton>
#include <QTextBrowser>

#include "hello_world.h"

Hello_World::Hello_World()
{
ui.setupUi(this);
connect(ui.pb_ok, SIGNAL(clicked()), this, SLOT(pb_ok_clicked()));
}

void Hello_World::pb_ok_clicked()
{
printf("test\n");
ui.le_output->insert("Hello_World");
}

# vi main.cpp
#include <QApplication>
#include "hello_world.h"

int main(int argc, char **argv)
{
QApplication app(argc, argv);
Hello_World dlg;
dlg.show();
return app.exec();
}

# qmake -project

# qmake

# make

# ./hello_world

'Education > QT programming' 카테고리의 다른 글

madplayer  (4) 2009.11.04
mount  (7) 2009.11.03
Signal 과 Slot 예제  (0) 2009.09.04
Posted by 초상큼발랄
l