바이너리는 심볼릭 링크를 생성한 후에만 실행될 수 있습니다.

바이너리는 심볼릭 링크를 생성한 후에만 실행될 수 있습니다.

나는 다소 이상한 문제에 직면하고 있습니다. 매우 깊은 경로에 32비트 qmake 바이너리가 배치되어 있습니다. 그래서 사용하기 쉽도록 다음을 사용하여 링크를 만들었습니다.

ln -s /복잡한/경로/to/qmake ~/qmake

저는 64비트 컴퓨터를 실행하고 있습니다. 그래서 32비트 라이브러리를 설치했습니다. 실행할 때 바이너리가 로드되지 않습니다.

~/qmake

파일이 존재하면 해당 파일이나 디렉터리가 없다는 오류가 보고됩니다. 하지만 32비트 이전 버전을 사용하면 원활하게 실행됩니다.

/lib/ld-linux.so.2 ~/qmake

여기가 훨씬 더 흥미로워지는 곳입니다. 내가 달리면

/lib/ld-linux.so.2 /복잡한/경로/to/qmake

다음과 같은 오류가 표시됩니다.

qmake: @ɇ�: QRU�4�������̀]ZY�: H: 오류 18446744073564424934

하지만 이미 언급했듯이 바이너리는 심볼릭 링크를 사용하여 로드됩니다.

그래서 여기에 두 가지 질문이 있습니다.

  1. 내 애플리케이션에서 로더를 명시적으로 언급해야 하는 이유는 무엇입니까?
  2. 심볼릭 링크가 제대로 작동하는데 왜 전체 경로 오류가 발생합니까?

관련 정보