2011-09-19 325 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); }' 
相關問題