Как я могу проверить, является ли скомпилированный двоичный файл 32-битным или 64-битным?
У меня Mac работает Lion, и я просто скачал последнюю версию apache.
Я сделал обычные вещи:
$./configure --prefix=/Users/daniels/Sandbox
$ make
$ make install
Для какой архитектуры скомпилирован двоичный файл httpd? 32 или 64? Есть ли способ найти это?
Я ищу, что я хочу сделать приложение MAMP, и я хочу скомпилировать
Apache, PHP, MySQL таким образом, чтобы я мог поместить их в файл dmg, а затем передать его другим людям, и они могут запускать его.
Ответы
Ответ 1
Проверьте команду 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
Ответ 2
Легкий способ определить, является ли 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); }'