Пропуск несовместимой библиотеки (mkbundle) - PullRequest
0 голосов
/ 08 января 2012

У меня есть программа .Net, которая работает нормально, используя "mono Program.exe", но сейчас я пытаюсь использовать "mkbundle -o prog Program.exe --deps" на том же компьютере, и она возвращает следующееошибка:

/ usr / bin / ld: пропуск несовместимого /opt/novell/mono/lib/pkgconfig/../../lib/libmono-2.0.so при поиске -lmono-2.0 / usr / bin / ld: пропуск несовместимого /opt/novell/mono/lib/pkgconfig/../../lib/libmono-2.0.a при поиске -lmono-2.0 / usr / bin / ld: невозможно найти-lmono-2.0 collect2: ld вернул 1 состояние выхода

Система - CentOS 5.7 на x86_64.Я установил моно в этой системе, используя эти инструкции.Кто-нибудь знает, почему моно работает, а mkbundle - нет?Как я могу это исправить?

1 Ответ

1 голос
/ 09 января 2012

Вы, вероятно, установили 32-битную версию mono (которая работает на системах x86_64, подобных вашей), но mkbundle попытается скомпилировать с настройками компилятора по умолчанию (которые являются 64-битными) и найдет только 32-битную версию библиотеки. Чтобы решить эту проблему, вы должны либо установить 64-битную версию mono в соответствии с вашей системой, либо (при условии, что вы также установите остальные 32-битные библиотеки, такие как libc и компиляторы) скомпилировать с mkbundle в 32-битном режиме, добавив Опция -m32 для командной строки компилятора, которую mkbundle печатает на консоли (вам также необходимо использовать опцию -c для mkbundle).

...