2011-03-11 119 views
3

我有一個二進制文件,可以運行在32位和64位,加載動態包的小提琴的目的。但是,默認情況下,它在64位環境下運行;所以如果我點擊32位唯一捆綁,dlopen失敗。如何以編程方式在32位或64位環境中啓動程序?

事先很容易檢查,所以我真正需要的是一種選擇是以32位還是64位啓動的方式。我如何以編程方式做到這一點?我願意接受Snow Leopard可能支持的任何內容。

回答

3

除了什麼@GWW寫道推出蟒蛇,如果你真的想以編程方式做到這一點,你可以用posix_spawnattr_setbinpref_np設置首選的CPU類型,然後使用posix_spawn

CPU類型由cpu_type_t指定,我相信這是在#include <mach/machine.h>中定義的。但是包括#include <mach-o/arch.h>可能會更安全。請參閱arch (3) manpage

+0

它由''('#include'圖中的某處)定義,並且我已經包含它。 – zneak 2011-03-11 04:55:31

1

這個工作對我來說,32位/ 64位

arch -i386 python 
Python 2.7 (r27:82500, Nov 10 2010, 22:46:43) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.maxint 
2147483647 

arch -x86_64 python 
Python 2.7 (r27:82500, Nov 10 2010, 22:46:43) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.maxint 
9223372036854775807 
+0

看起來不錯。謝謝。 – zneak 2011-03-11 04:37:55

相關問題