2011-09-19 3 views
10

J'ai un Mac qui tourne Lion et je viens de télécharger la dernière version d'Apache. Je l'ai fait les choses habituelles:Comment puis-je vérifier si un binaire compilé est 32 bits ou 64 bits?

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

Pour quelle architecture est à la compilation httpd? 32 ou 64? Y a-t-il un moyen de trouver cela? Ce que je cherche, c'est que je veux faire une application comme MAMP et je veux compiler Apache, PHP, MySQL de telle sorte que je puisse les mettre dans un fichier dmg et ensuite le donner à d'autres personnes et ils peuvent exécuter.

+0

double possible de [déterminer si un fichier exécutable (ou bibliothèque) est de 32 ou 64 bits (sur OSX)] (http://stackoverflow.com/questions/1941825/determine-if-an-executable-or-library-is-32-or-64-bits -on-osx) – outis

Répondre

18

Consultez la commande 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 moyen facile de déterminer si l'Apache est 32 bits ou 64 bits est d'exécuter ce qui suit dans la zone globale en utilisant 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); }' 
Questions connexes