2011-09-19 324 views
10

我有一台运行Lion的Mac,我刚刚下载了最新版本的Apache。 我做了平常的事情:我如何检查编译的二进制文件是32位还是64位?

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

为了什么架构httpd二进制文件编译的? 32或64?有没有办法找到这个? 我正在寻找的是我想做一个MAMP像应用程序,我想编译 Apache,PHP,MySQL这样,我可以把它们放在一个dmg文件,然后把它给其他人,他们可以运行。

+0

可能重复的[确定是否可执行(或库)是32或64位(在OSX上)](http://stackoverflow.com/questions/1941825/determine-if-an-executable-or-library-is-32-or-64-bits -on-OSX) – outis

回答

18

查看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

一种简单的方法,以确定是否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); }' 
相关问题