невозможно запустить бинарный файл в Mac, работающий в Linux - PullRequest
2 голосов
/ 23 ноября 2011

Я использую программное обеспечение для анализа графов. У меня есть бинарный файл этого программного обеспечения в двух папках для режима Linux и режима SunOs, но у меня нет исходного кода. Я могу запустить двоичный файл на машине Linux. Но когда я хочу запустить двоичный файл на компьютере Mac, я получаю «команду не найдена» для двоичных файлов папок Linux и SunOs.

Может кто-нибудь подсказать, сможет ли он запустить это на машине MAC любым способом, например, используя оболочку Linux или что-то подобное

Gaurav

РЕДАКТИРОВАТЬ: я получаю сообщение об ошибке «невозможно выполнить двоичный файл», когда я устанавливаю chmod в «u + x»

Ответы [ 3 ]

4 голосов
/ 23 ноября 2011

Вам нужно будет перекомпилировать его для OS X или использовать виртуальную машину.

Команда не найдена просто означает, что вы не выполняете ее правильно, убедитесь, что она chmod u+x и она либо на вашем PATH, либо вы явно указали путь.

3 голосов
/ 23 ноября 2011

Если вы используете команду file, вы увидите разницу, в исполняемом файле Linux у вас будет что-то вроде:

ELF 64-битный исполняемый LSB, x86-64, версия 1 (GNU/ Linux), статически связанный, для GNU / Linux 2.6.15, не очищен

и что-то подобное для исполняемых файлов OS X:

команда: Mach-O universalдвоичный файл с командой 2 архитектуры (для архитектуры x86_64): 64-разрядная исполняемая команда Mach-O x86_64 (для архитектуры i386): исполняемый файл Mach-O i386

0 голосов
/ 23 ноября 2011

Операционные системы, как правило, не поддерживают выполнение объектного кода в каких-либо дополнительных форматах ... Если Mac OSX произошел от Solaris или Linux, то может существовать некоторый стимул для поддержки предыдущих версий.Но просто предположим, что все в двоичном несравнимо, если оно было скомпилировано для другой арки и платформы.Есть несколько мест, где вы наследуете обратную совместимость, выполняя 32, но код на 64-битных ОС ... Или поддержку кода PPP на Intel Mac, но я подозреваю, что оба из них, особенно последние, были нетривиальными инженерными задачами.

Вот ваши варианты ... Получите исходный код и скомпилируйте на Mac, если он компилируется на Linux и Solaris, то, вероятно, он скомпилируется и будет нормально работать на Mac.

Запуск через эмулятор или загрузочный лагерь

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