Ошибка компиляции Qualnet на Mac: файл не имеет необходимой архитектуры - PullRequest
0 голосов
/ 01 августа 2010

При попытке скомпилировать Qualnet на Mac я получил следующую ошибку: ld: warning: in ../kernel/obj/mobility_private.o-darwin-x86-gcc-4.0, файл не имеет необходимой архитектуры и связкиошибок для других файлов в этом виде.Поэтому мне интересно, есть ли способ решить проблему?Тревожное ожидание помощи.

Ответы [ 2 ]

0 голосов
/ 01 августа 2010

Вы можете проверить архитектуру определенного двоичного файла с помощью file :

file libdynlib.so
libdynlib.so: Mach-O 64-bit dynamically linked shared library x86_64

Вы должны скомпилировать вашу программу с той же архитектурой библиотек, которые вы используете.Итак, все должно быть 32 или 64 бита.

0 голосов
/ 01 августа 2010

Это означает, что вы пытаетесь связать объекты различной архитектуры.

Например, объект скомпилирован для i386 (32 бита), а другой объект скомпилирован для x86_64 (64 бита).

Убедитесь, что все объекты скомпилированы для целевой архитектуры. Ваши варианты:

  1. Перекомпилировать mobility_private.o для 64 бит (-arch x86_64);
  2. Перекомпилировать mobility_private.o для 32 и 64 бит (-arch i386 -arch x86_64);
  3. Перекомпилируйте ваше приложение для 32 бит (-arch i386), чтобы оно правильно связывалось с mobility_private.o.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...