Как я могу проверить, является ли скомпилированный двоичный файл 32-разрядным или 64-разрядным? - PullRequest
10 голосов
/ 19 сентября 2011

У меня Mac под управлением Lion, и я только что скачал последнюю версию apache.Я сделал обычные вещи:

$./configure --prefix=/Users/daniels/Sandbox
$ make
$ make install

Для какой архитектуры скомпилирован двоичный файл httpd?х86 или х64?Есть ли способ найти это?

Что я ищу, так это то, что я хочу создать MAMP-подобное приложение и хочу скомпилировать Apache, PHP и MySQL таким образом, чтобы я мог поместить их в файл DMG и затем передатьдругие люди, и они могут управлять им.

Ответы [ 2 ]

18 голосов
/ 19 сентября 2011

Проверьте команду file.

$ file /usr/bin/grep
/usr/bin/grep: Mach-O universal binary with 2 architectures
/usr/bin/grep (for architecture x86_64):    Mach-O 64-bit executable x86_64
/usr/bin/grep (for architecture i386):  Mach-O executable i386
0 голосов
/ 13 июня 2014

Простой способ определить, является ли Apache 32-разрядным или 64-разрядным, выполнить следующую команду в глобальной зоне с помощью dtrace:

sudo dtrace -qn 'syscall::: /execname == "httpd"/ { ab = (curpsinfo->pr_dmodel == PR_MODEL_ILP32) ? "32-bit" : "64-bit" ; exit(0); } END { printf("Apache: %s",ab); }'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...