2010-03-02 5 views
0

내 C++ 응용 프로그램 중 하나를 실행하는 동안 비슷한 구성의 다른 컴퓨터가 응용 프로그램을 완벽하게 실행하고있는 내 Cento x64 상자 중 하나에서 이상한 메시지가 나타납니다. .64 비트 CentOS에서 64 비트 이진 실행 오류가 발생했습니다.

오류 메시지가 : 공유 라이브러리를로드하는 동안 오류가 발생했습니다 :

/MyApp를/MyApp를 : 잘못된 ELF 클래스 : ELFCLASS64

NB : 'MyApp를'되어 있지 일부 공유 라이브러리 (.so를)하지만, 실제 응용 프로그램 자체.

myapp와 연결된 타사 라이브러리도 모두 응용 프로그램을 실행중인 컴퓨터에서 컴파일되었습니다. libmysqlpp, libthrift 및 libACE 라이브러리를 컴파일하고 필요한 것은 yum을 통해 설치되었습니다.

+0

'ldd myapp'는 무엇을 제공합니까? 모든 것이 해결 되었습니까? 'myapp'를 컴파일하고 링크하는 동안 얻은 경고? – vpram86

답변

0

모든 것이 해결되었습니다.

ld-linux.so.2을 사용하여 응용 프로그램을 동적으로로드하려고했지만 사용자 정의 라이브러리 폴더를 사용하기 위해 ld-linux.so.2는 32 비트 바이너리 만 실행합니다. 지금은 ld-linux-x86-64.so.2을 사용하고 있으며 모든 것이 좋은 것처럼 보입니다. :)

0

더 광범위한 주제에 대해 뛰어난 기사가 있습니다 (예 : 64 비트 컴퓨터에서 32 비트 컴파일 된 응용 프로그램 실행) http://www.debian-administration.org/articles/534에서 "64 비트 Debian GNU/Linux에서 32 비트 응용 프로그램 실행"이라는 제목의 글을 읽었습니다. 짧은 대답은 ia32 Suite입니다.