2011-09-19 12 views
10

Ho un Mac con Lion e ho appena scaricato l'ultima versione di Apache. Ho fatto le solite cose:Come posso verificare se un binario compilato è 32bit o 64it?

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

Per ciò che l'architettura è stato compilato il binario httpd? 32 o 64? C'è un modo per trovarlo? Quello che sto cercando è che voglio fare un'applicazione simile a MAMP e voglio compilare Apache, PHP, MySQL in modo tale da poterli inserire in un file dmg e poi darlo ad altre persone e possono eseguirlo.

+0

possibile duplicato [determinare se un eseguibile (o libreria) è 32 -o 64-bit (su OSX)] (http://stackoverflow.com/questions/1941825/determine-if-an-executable-or-library-is-32-or-64-bits -on-osx) – outis

risposta

18

Controllare il comando 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

Un modo semplice per determinare se Apache è 32 bit o 64 bit è quello di eseguire quanto segue nella zona globale utilizzando 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); }' 
Problemi correlati