FAIDE에서 arm-linux 컴파일 따라하기

FAIDE(for eclipse)에서는 Makefile을 이용해서 arm-linux-gcc 로 컴파일을 하려고 합니다.

컴파일 하려는 FALinux 의 ezboot 도 Makefile로 형태로 구성되어 있기 때문에
Makefile 샘플을 통해 arm 용으로 컴파일 하도록 하겠습니다.

 

1. 프로젝트 생성

C:\FAIDE 폴더로 가서 FAIDE.exe를 실행합니다.

File > New > Other를 선택하면 다음과 같은 화면이 나타납니다.
C 항목을 열어서 C Project를 선택하고 Next를 누릅니다.

(File > New > C Project를 선택했을 경우, 바로 다음 화면으로 넘어갑니다.)

▲ 메뉴에서 C(C++)에서 C Project(C++ Project)를 선택합니다.

Quick① 프로젝트 명 입력
② [왼쪽 메뉴]       Project type : → Makefile project → Hello World C++ Project 선택
③ [오른쪽 메뉴]    Toolchains : → Cygwin GCC 선택
④ Finish 버튼을 눌러줍니다.

▲ 프로젝트 이름을 설정합니다.
   예제에서 'test_a' 라는 프로젝트 이름으로 진행하겠습니다.
   왼쪽 아래 Project type 에서 Makefile project를 선택합니다.
   기본적으로 Makefile 이 제공되는 Hello World C++ Project를 선택합니다.
   오른쪽 창의 Toolchains에서 Cygwin GCC를 선택합니다.
   설정이 완료됐으면, 아래 Finish 버튼을 눌러줍니다.

2. 화면 설명

실행을 하면 다음과 같은 화면을 볼 수 있습니다.

eclipse 실행 화면에서 다음과 같은 탭으로 구분되어 있습니다.

 

Project Explorer

▲ 프로젝트의 소스 및 바이너리 파일을 보실 수 있습니다.
    test_a.cpp                       test_a 소스 파일입니다.
    test_a.exe - [x86/le]       x86 으로 컴파일 된 실행파일입니다.
    Makefile                           컴파일에 사용된 Makefile입니다.

 

Console

▲ 프로젝트를 생성하면 기본으로 컴파일을 합니다.
   생성된 프로젝트 내의 Makefile을 참고하여 g++ 로 컴파일을 하고 파일을 생성합니다.
   컴파일 진행과정을 볼수 있는 콘솔 화면 입니다.

 

3. 소스 파일과 실행

소스 파일

화면 왼쪽 탭의 Project Explorer에서 test_a.cpp 파일을 엽니다. 

▲ 화면 중앙에 소스 파일이 보입니다.

이번엔 Project Explorer에서 Makefile 파일을 엽니다.

▲ 컴파일을 위한 Makefile 의 소스를 볼 수 있습니다.

컴파일 (Complie)

이 상태에서 실행을 하도록 하겠습니다.
상단 메뉴에 Run >> Run (CTRL+F11)를 누르거나 아래 버튼을 눌러서 실행합니다.

다음과 같은 Debugger 선택 창에서 Cygwin gdb Debugger를 선택하고 OK 버튼을 누릅니다.

▼ x86 환경에서 컴파일이 되면서 콘솔 창에 test_a.cpp의 "Hello World!!!"가 출력됩니다.

 

4. 소스 편집

Makefile 파일 수정

Makefile 에 arm용 gcc (arm-linux-gcc) 추가하고 컴파일 하도록 하겠습니다.

Makefile 에 다음과 같이 수정을 합니다.

Makefile (수정 전)CXXFLAGS =  -O2 -g -Wall -fmessage-length=0

OBJS =      test_a.o

LIBS =

TARGET =    test_a.exe

$(TARGET):  $(OBJS)
    $(CXX) -o $(TARGET) $(OBJS) $(LIBS)

all:    $(TARGET)

clean:
    rm -f $(OBJS) $(TARGET)

위의 내용을 지우고 기본적은 컴파일 방법을 넣어줍니다.

Makefile (수정 후)all:
    arm-linux-gcc -o test_a.exe test_a.cpp

clean:
    rm -f test_a.o test_a.exe

수정을 한 후에 Run 명령을 실행하면, 실행이 되지 않거나 에러를 발생합니다.

Build

기존에 생성된 파일(x86 실행 파일 등)을 지워주고 새로 컴파일 하도록 합니다.

▲ 상단 메뉴에서 Project >> Clean... 메뉴를 선택합니다.

▲ 다음과 같은 Clean 창이 뜨는 곳에 적용할 프로젝트를 확인하고, OK 버튼을 누릅니다.

Clean all project
                     : eclipse 내의 모든 프로젝트에 Clean 명령을 적용한다.
Clean projects selected below
                     : eclipse 내의 선택된 프로젝트에만 Clean 명령을 적용한다.

▲ Clean 이 적용된 후에, 자동으로 Build (Compile) 이 됩니다.
    Makefile 파일의 make 명령을 그대로 수행합니다.

Project Explorer 메뉴로 갑니다.

Makefile에서 지정한 test_a.exe 파일이 생긴걸 확인할 수 있습니다.
파일 뒤에 [x86/le] 라는 부분도 사라진 걸 확인 할 수 있습니다.

Run (CTRL+F11) 또는 Run 버튼을 눌러서 실행을 합니다.

▲ 실행이 되지 않고, 실패 했다고 나옵니다.

arm 으로 컴파일 된 파일이라서 x86 환경에서 실행이 안되는거 같습니다.

Project Explorer에서 아래 그림과 같이 파일을 복사 합니다.

▲ test_a.exe 파일에서 마우스 오른쪽 버튼을 눌러서 Copy를 합니다.

▲ 윈도우 탐색기에서 C:\FAIDE\cygwin 폴더로 이동한 다음, 붙여넣기(Ctrl + v)를 해줍니다.

C:\FAIDE\cygwin 폴더안에 Cygwin rxvt.bat 파일을 실행합니다.

▲ Cygwin 으로 들어간 후에 file 명령으로 test_a.exe 파일을 확인합니다.
    ARM <-- 부분을 확인합니다.
    arm 으로 컴파일 된 것을 확인할 수 있습니다.

 

5. EZ-보드에서 실행

arm-linux-gcc 로 컴파일이 제대로 되는지 확인하기 위해서 EZ-Board에서 실행을 합니다.

Hello World!!! 가 출력된 것을 확인하였습니다.

FAIDE(for eclipse)에서 arm-linux-gcc 로 컴파일 해보았습니다.