경로문제 같네요..
링크되는 윈도우상의 lib 경로문제가 아니고 lib에 있는 파일들이 가지고 있는 경로문제 입니다.
라즈베리파이 라이브러리를 배포된것을 사용 하시면 해결 되고요,
타겟보드에서 직접 발췌해서 가져 오셨다면 해당 파일들의 링크로 인해 저런 문제가 생길 수 있습니다.
구글에서 찾아 보시면 배포되는 라즈베리파이 라이브러리가 있을겁니다.
(어딘지는 오래되서 기억이...)
gomsun2 님이 쓰신 글 :
: 안녕하세요. 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
:
: 모조록 작은 단서라도 조언을 부탁드립니다. ㅠ_ㅠ