안녕하세요..

어떤 라이브러리를 참조하는지는 어플리케이션을 포팅하신 님이 알고 있어야 합니다.
저희가 박헌권님께서 어떤 어플리케이션을 사용하여셨는지, 이 어플리케이션이 어떤 라이브러리를 참조했는지는 모릅니다.

일단 확인하는 방법은 다음과 같습니다..
우선 i386용 ( gcc ) 컴파일을 하셨어 다음과 같은 명령으로 라이브러리 참조를 확인 하세요..

# ldd  어플리케이션 실행 파일

[root@arm26 bin]# ldd  gzip
        libc.so.6 => /lib/tls/libc.so.6 (0x00445000)
        /lib/ld-linux.so.2 (0x00428000)

[root@arm26 bin]#

arm용으로 컴파일 된것을 하시면 다음과 같은 문구만 나옵니다...

[root@arm26 v01]# ldd app_gpio
        not a dynamic executable

따라서 일반 GCC로 컴파일 하셨어 먼저 참조한 라이브러리를 확인 하시고, 이 라이브러리들 중 타겟보드에
/lib 디렉토리 또는 /usr/lib 디렉토리에 라이브러리가 존재하는지 확인, 만약 없다면 해당 라이브러리를 arm용으로 컴파일 하셨어 타겟보드에 넣으시면 됩니다.


그럼 수고하세요..



># file 실행파일
>
> : ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.19, dynamically linked (uses shared libs), not stripped
>
>라고 확인 되는데.. arm-linux-gcc로 컴파일했으니 정상인듯한데요?
>
>
>그런데 target 에서 파일실행할때 어떤 공유라이브러리가  로딩되어야 하는지 안나오네요??
>
>어떤 공유 라이브러리?? 인가요?
>
>
>문제의 라이브러리를 찾아서 컴파일후 오브젝트 파일을 램디스크 /lib에 넣어주고
>
>램디스크 다시 적재 후 실행파일을 다운받아서
>
>실행한다.. 순서가 맞나요?
>
>
>
>
>>안녕하세요..
>>
>>공유라이브러리는 해당 라이브러리를 타겟보드의 /lib 디렉토리에 복사하시면 됩니다.
>>automake 를 사용해 보지 않았어 잘모르겠지만 이것을 사용하면 arm용으로 컴파일이 되나요???
>>
>>어플리케이션의 실행 파일을 다음과 같이 해 보세요.
>>
>># file  어플리케이션
>>
>>ELF 32-bit LSB executable, Advanced RISC Machines ARM, version 1, dynamically linked (uses shared libs), not stripped
>>
>>라는 문장이 나오면 정상입니다.
>>
>>그리고 공유라이브러리가 없다면 해당 공유라이브러리를 arm용으로 컴파일이 하셨어 타겟보드의 /lib 디렉토리에 복사하셔야 합니다.
>>
>>
>>그럼 수고하세요.
>>
>>
>>>
>>>
>>>error while loading shared libraries : cannot open shared object file: cannot load shared object file: No such file or directory
>>>
>>>레드헷9에서 automake를 이용해서 컴파일 해서 타깃보드에 올리고 실행하니까
>>>
>>>이런 메세지가 나오네요..
>>>
>>>
>>>공유라이브러리를 넣어줘야 하는거 같은데 어떡게 해야 하나요???
>>>
>>
>