Неправильная архитектура при запуске исполняемого файла из Xcode4 в UNIX - PullRequest
0 голосов
/ 17 октября 2011

Прежде всего, я очень новичок в программировании.

  1. У меня есть программа сборки, использующая Xcode 4 на Snow Leopard. Архитектура проекта установлена ​​на «Стандарт (32/64-битная Intel)»

  2. После этого я экспортировал исполняемый файл на компьютер UNIX для запуска.

  3. SSH к этому компьютеру

  4. Ввод ./programname в терминале (компьютера UNIX) дает следующий ответ: Ошибка формата exec. Неправильная архитектура.

Программа отлично работает на моем ноутбуке Mac.

Ответы [ 2 ]

1 голос
/ 17 октября 2011

Когда вы компилируете программу, она (*) будет скомпилирована для для конкретной платформы и для конкретной операционной системы .Скорее всего, он также будет скомпилирован для определенного набора библиотек. Обычно это именно те параметры компьютера, который выполняет компиляцию (другие случаи называются кросс-компиляцией).

Другими словами: компиляция программы на Mac приведет к созданию двоичного файла, которыйзапускает only на Mac (если, опять же, вы не выполняете кросс-компиляцию).Ваша UNIX-система (кстати, какая UNIX?) Имеет другую операционную систему, другие библиотеки и, возможно, даже другую архитектуру ЦП.

В некоторой степени связанный: яблоки рекламируются (или используются для рекламы) Mac OS X какUNIX.Хотя Mac OS X, безусловно, является операционной системой класса UNIX, то не означает, что она двоично совместима с любой другой ОС UNIX-класса.

* почти всегдаза исключением систем, предназначенных для избежания этого (например, Java)

0 голосов
/ 17 октября 2011

Программы, скомпилированные XCode, будут работать только под MacOS X. Если «компьютер UNIX» на шаге 2 не работает под MacOS, программа не сможет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...