안녕하세요. gomsun2입니다.
프리파스칼 포럼에는 처음 글을 남깁니다. 얼마전부터 Delphi로 작성된 소스를 ARM-Linux용 .so로 변경하는 작업을 진행중
크로스 컴파일에 실패하여 도움을 요청드립니다.
1~7번은 과정을 설명하였으며, 8번에 오류 메시지와 질문을 작성하였습니다.
모쪼록 작은 단서라도 조언을 부탁드립니다. ㅠ^ㅠ
개발환경
- Host환경은 Windows 8.1(64) 이며,
- Target은 ARM-Linux입니다.
- IDE는 CodeTyphon(이하 CT) 5.5을 설치 하였습니다.
진행해본 작업입니다.
1. CT (Multi Architecture=1) 설치
2. Download Tool Chain으로 아래 항목을 설치하였습니다.
. win32-arm-linux
. win32-arm-linux--RapberryPi
. win32-arm-linux--RapberryPi2
. win64-arm-linux
. win64-arm-linux--RapberryPi
. win64-arm-linux--RapberryPi2
3. Download Libraries로 아래의 OS Library를 설치 하였습니다.
. arm-linux-Raspbian -> 경로 C:\codetyphon\binLibraries\arm-linux-Raspbian
. arm-linux-raspbian2 -> 경로 C:\codetyphon\binLibraries\arm-linux-Raspbian2
4. ARM-Linux 장비에 접속하여 /lib의 모든 파일을 C:\codetyphon\binLibraries\arm-linux-lib 로 복사하였습니다.
5. Cross Build: 각각을 크로스 빌드 하였습니다.
. FPC32 build cross element arm-linux
. FPC32 build cross element arm-linux--RapberryPi
. FPC32 build cross element arm-linux--RapberryPi2
. FPC64 build cross element arm-linux
. FPC64 build cross element arm-linux--RapberryPi
. FPC64 build cross element arm-linux--RapberryPi2
크로스 빌드 후
6. Typhon 32bit IDE를 실행시킨후 테스트를 위한 간단한 코드를 작성하였습니다.
File->New->Libaray로 프로젝트를 생성 후
library gs2module;
{$mode objfpc}{$H+}
uses
Classes;
function echo(AValue: PChar): PChar;
begin
Result := AValue;
end;
exports
echo;
begin
end.
7. 크로스 컴파일을 위한 프로젝트 설정(Project->Project Options 실행->Compiler Options)
. Paths -> Labrary files (-Fl): 에 값을 한번식 설정해 보았습니다.
- C:\codetyphon\binLibraries\arm-linux-Raspbian
- C:\codetyphon\binLibraries\arm-linux-Raspbian2
- C:\codetyphon\binLibraries\arm-linux-lib
. Config and Target -> Target Platform
- Target OS(-T): Linux
- Target CPU Family (-P): ARM
8. 컴파일 실행하면 링킹과정에서 실패합니다.
Compile Project, OS: linux, CPU: arm, Target: libgs2module.so: Exit code 1, Errors: 1
c:\codetyphon\fpc\fpc32\bin\i386-win32\arm-linux-ld.exe: cannot find /lib/ld-linux-armhf.so.3
gs2module.pas(19,0) Error: Error while linking
. ld-linux-armhf.so.3 이 파일은 아래 경로에 포함되어 있고, 컴파일 옵션 중 Library Path에도 잡혀 있는데, 해당 파일을 찾지 못하는 것 같습니다.
- C:\codetyphon\binLibraries\arm-linux-Raspbian
- C:\codetyphon\binLibraries\arm-linux-Raspbian2
- C:\codetyphon\binLibraries\arm-linux-lib
모조록 작은 단서라도 조언을 부탁드립니다. ㅠ_ㅠ