64-разрядная двоичная ошибка выполнения на 64-разрядных процессорах - PullRequest
0 голосов
/ 02 марта 2010

Выполняя одно из моих приложений C ++, я получаю странное сообщение на одном из моих компьютеров Cento x64, где одновременно на другом компьютере с аналогичной конфигурацией отлично работает Приложение.

Сообщение об ошибке:

/ myapp: ошибка при загрузке общих библиотек: / myapp: неправильный класс ELF: ELFCLASS64

Примечание: myapp - это не общая библиотека (.so), а само приложение.

Все сторонние библиотеки, связанные с myapp, также были скомпилированы на компьютере, на котором я выполняю приложение. Я скомпилировал библиотеки libmysqlpp, libthrift и libACE, и все остальное, что было необходимо, было установлено через yum.

Ответы [ 2 ]

0 голосов
/ 27 января 2012

Существует отличная углубленная статья по более широкой теме (например, запуск 32-битных скомпилированных приложений на 64-битных машинах) по адресу http://www.debian -administration.org / article / 534 под названием «Запуск 32 Приложения на 64-битной Debian GNU / Linux ". Краткий ответ: ia32 Suite .

0 голосов
/ 02 марта 2010

Все решено.

На самом деле я пытался загрузить приложение динамически, используя ld-linux.so.2 , чтобы использовать пользовательскую папку библиотеки, кроме ld-linux.т.2 выполняет только 32-битные двоичные файлы.Сейчас я использую ld-linux-x86-64.so.2 и все выглядит хорошо:)

...