如何知道libpython27.a是32位还是64位?

时间:2015-11-13 06:08:45

标签: python static-libraries 32bit-64bit platform

我有一个libpython27.a文件:如何在Windows 7 x64上知道它是32位还是64位?

3 个答案:

答案 0 :(得分:4)

试试dumpbin /headers "libpython27.a"。 (dumpbin reference

输出将包含

FILE HEADER VALUES 14C machine (x86)

FILE HEADER VALUES 8664 machine (x64)

请注意,如果收到如下错误消息:

E:\temp>dumpbin /headers "libpython27.a"
LINK: extra operand `libpython27.a'
Try `LINK --help' for more information.

这意味着在搜索路径中的某处有一个GNU链接实用程序的副本。确保使用正确的link.exe(例如C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0\VC\bin中提供的mspdb80.dll)。它还需要setstatus,它位于PATH中的同一文件夹或其他内容中,否则您将收到错误消息:

enter image description here

答案 1 :(得分:2)

在终端/命令行中启动Python解释器时,您可能还会看到如下行:

  

Python 2.7.2(默认,2011年6月12日,14:24:46)[MSC v.1500 64 bit   (AMD64)]在win32上

其中[MSC v.1500 64 bit(AMD64)]表示64位Python。

或者

尝试使用ctypes获取void指针的大小:

import ctypes
print ctypes.sizeof(ctypes.c_voidp)

32位为4或64位为8。

答案 2 :(得分:0)

在Linux上,您可以使用:objdump -a libpython27.a|grep 'file format'

示例:

f@f-VirtualBox:/media/code$ objdump -a libpython27.a|grep 'file format'
dywkt.o:     file format pe-i386
dywkh.o:     file format pe-i386
dywks01051.o:     file format pe-i386
dywks01050.o:     file format pe-i386
dywks01049.o:     file format pe-i386
dywks01048.o:     file format pe-i386
[...]