크로스 컴파일 실행파일 no such file or directory 문제
크로스 컴파일 하여 타겟 보드에 넣었을 때 실행되지 않고,
no such file or directory 가 출력되는 경우에 해결하는 방법입니다.
실행시 no such file or directory가 출력되는 실행파일을 file 명령어를 통해
Shared Library를 확인 합니다.
file 해당파일
ex)
test: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 2.6.16, not stripped
file 명령어를 실행하면 그 파일의 ELF 정보 및 사용하는 공유 라이브러리 정보가 나옵니다.
실행파일에서 사용하는 공유라이브러리가 /lib 혹은 /etc/ld.so.conf 파일에 저장되어 있는 경로에 있는지 확인 합니다.
없을 경우에는 타겟보드에 저장된 올바른 라이브러리 파일을 생성하거나 심볼릭 링크를 통해 생성 합니다.
ex) ld-linux.so.3 파일이 없어서 나타나는 경우
/lib 디렉토리내에 ld-linux.so.3가 없어 나타나는 경우에는 대게 arm 라이브러리 중 ld-linux-armhf.so.3가 있습니다.
ld-linux.so.3는 프로그램이 메모리에 적재되는 시점에서 실행에 필요한 라이브러리를 링킹해주는 파일입니다.
이 링킹은 target platform인 Arm 에서는 ld-linux-armhf.so.3가 담당합니다. 그에 따라 복사 또는 파일명 변경이 아닌 심볼릭 링크를 걸어주어야 합니다.
sudo ln -s /lib/ld-linux-armhf.so.3 /lib/ld-linux.so.3
정상적으로 파일을 생성 혹은 링크했다면, 재실행 시 문제되지 않고 정상 실행이 될 것 입니다.
'System Programming > Tips' 카테고리의 다른 글
Samba Memory Leak 및 Out of memory 에러 수정 (0) | 2020.02.21 |
---|---|
[TSLIB] selected device is not a touchscreen I understand 문제 (0) | 2017.05.10 |
HDMI Hot Plug Detect Pin and +5V Pin (0) | 2016.12.26 |
현재시간 얻어오기 (0) | 2016.10.04 |
teraterm 한글 깨짐 및 설정 (0) | 2016.09.21 |