갑작스러운 32bit 64bit system 변경
글쓴이: somedayhow / 작성시간: 수, 2013/02/13 - 11:15오전
분명 어제까지만 해도 잘 실행되던 프로그램이
binary file error가 나면서 실행이 되지를 않습니다.
-SG31:~/rnn_class_EE837/src/rnn-learn$ ./rnn-learn -c config.txt target*.txt bash: ./rnn-learn: cannot execute binary file
인터넷 검색을 해보니 file filename 으로 컴파일한 환경을 확인해보라고 해서 확인해보니
SG31:~/rnn_class_EE837/src/rnn-learn$ file rnn-learn rnn-learn: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped SG31:~/rnn_class_EE837/src/rnn-learn$ rm config.txt target*.txt SG31:~/rnn_class_EE837/src/rnn-learn$ ls
따로 무슨짓을 하지 않았는데 갑자기 왜 이렇게 된것일까요?
어떻게 실행시킬 방법이 없을까요?
chmod +x 써보라는 사람도 있었지만 소용이 없습니다.
지금 쓰는 환경은 ubuntu 12.04 32bit입니다.
Forums:
누군가...
binary를 바꿨다... 라고 밖에 설명이 안되는 상황이군요.
앞 사람이 답글을 지워서 댓댓글도 사라졌지만
비번도 걸려있는 컴에 누가 그런일이 일어났다는게 참 신기합니다 ㅎㅎ
그래도 make clean 후 다시 make하니 돌아가서 정말 다행입니다
----------------------------------------------------------------------------------------------------------------------
많이 배워갑니다
고맙습니다.
언젠가 질문이 아니라 답변을 달아줄 수 있는 날이 오기를
저도 같은 경험이 있는데 일부 프로그램 중 이유는
저도 같은 경험이 있는데
일부 프로그램 중 이유는 모르겠지만 64bit환경에서 컴파일한 파일을 32bit환경에서 실행하려고하면 에러가 발생하는 것 같습니다.
일부가 아니라 64비트로 컴파일하면 32비트에서
일부가 아니라 64비트로 컴파일하면 32비트에서 실행안되는게 당연한건데요????
글을 이해를 못하신것 같은데 64비트로 컴파일한게
글을 이해를 못하신것 같은데 64비트로 컴파일한게 아닌 64비트 환경에서 컴파일한 파일이라고 썼습니다.
글을 이해를 못하신것 같은데 64비트 환경에서
글을 이해를 못하신것 같은데 64비트 환경에서 컴파일하면 디폴트로 64비트로 컴파일됩니다.
글을 조금은 이해를 하신거 같은데 그래서 제가
글을 조금은 이해를 하신거 같은데
그래서 제가 일부라고 쓴겁니다.
64비트 환경에서 디폴트로 컴파일한 프로그램은 32비트에서 실행 불가능하고
64비트 환경에서 32비트로 컴파일한 프로그램은 32비트에서 실행 가능하겠죠
저도 같은 경험이 있는데일부 프로그램 중 이유는
이 두줄에 심오한 의미가 있어서, 아직까지 조금밖에 이해를 못하고 있네요ㅠ.ㅠ
결국 "일부 프로그램" 이란 "64비트 환경에서 디폴트로 컴파일한 프로그램" 이라는 뜻이었던가요???
그럼 "이유는 모르겠지만" 이라는 말은 무슨 뜻인가요???
문맥상 "64비트환경에서 32비트용으로 컴파일한 파일 중 일부는 되고 일부는 이유없이 안된다" 라고 이해를 해야할 것 같은데,
이 댓글을 보니 그것도 아닌것 같고..
결국 "일부 프로그램" 이란 "64비트 환경에서
정확히는 '64비트 환경에서 컴파일한 파일' 입니다.
일부 툴들은 64비트 환경에서도 32비트-컴파일이 디폴트로 설정되어있습니다.
제 지식이 짧아 64비트 컴파일과 32비트의 컴파일 과정이 어떻게 다른지와
그리고 64비트 실행 프로그램과 32비트 실행 프로그램이 어떤 차이점을 가지고 왜 각각의 다른 실행 환경에서는 실행이 안되는지에 대한 이유를 모르겠다는 것 이였습니다.
제가 전달하고자 했던 말은 문자 그대로
64비트 환경에서 컴파일한 일부 파일을 32비트 환경에서 실행하려고하면 (자세한 이유는 모르겠지만 위와같은) 에러가 발생하는 것 같습니다.
입니다.
제가 자세한 옵션을 모르는 이유는 저는 64비트 용 프로그램은 64비트 환경에서 컴파일하고
32비트 용 프로그램은 32비트 환경에서 컴파일하기때문입니다.;;
64비트 환경에서 컴파일한게 아니라 컴파일한 결과물이
64비트 환경에서 컴파일한게 중요한게 아니라 컴파일한 후 결과물이 이미 64비트이네요.
크로스컴파일 환경을 구축하면 32비트에서도 64비트 결과물 만들어냈 수 있고 그 반대도 되지만,
32비트 환경에서는 64비트 바이너리를 못 돌리죠.
잘돌던게 갑자기 저 에러 났다면 누군가가 손 댔다는 거 외에는 없겠네요.
Written By the Black Knight of Destruction
댓글 달기