Целевое приложение .NET x32, работающее как x64 в Ubuntu

Итак, я пытаюсь отладить проблему, с которой сталкивается мой пользователь с частью программного обеспечения в Ubuntu.

Я скомпилировал приложение С#, ориентированное на платформу x86, при запуске его на моем образе Windows x64 приложение работает как приложение x32.

введите здесь описание изображения

Однако при запуске того же приложения, но моно в Ubuntu, отображается, что это x64.

введите здесь описание изображения

Что затем вызывает очень неприятную ошибку

Для работы pthread_cancel необходимо установить libgcc_s.so.1.


person user3037561    schedule 11.06.2014    source источник
comment
В вашей системе установлена ​​64-битная версия Mono, которая может обращаться только к 64-битным собственным библиотекам, она не может использовать 32-битные собственные библиотеки.   -  person Andreas    schedule 12.06.2014
comment
Не видя вашего кода и конфигурации, я пока не вижу ничего плохого.   -  person Lex Li    schedule 13.06.2014


Ответы (1)


Моно, скомпилированное для 64-разрядной версии, может запускать приложения только в 64-разрядном режиме. Точно так же Mono, скомпилированный для 32-разрядной версии, может запускать приложения только в 32-разрядном режиме.

Если вы хотите иметь возможность работать в любом режиме, вам нужны 2 версии Mono — одна скомпилирована для 32-битной версии, а другая — для 64-битной.

person jstedfast    schedule 12.06.2014