Articles of 32位

编译和链接Debian 64位上的32位应用程序

我目前正在试图编译和链接我的Debian 64位上的32位应用程序,但在链接时失败。 我正在使用(在我的Makefile中)编译的命令是: gcc -Os -m32 -Wall -g -c $< -o $@ 这似乎工作。 然后我用下面的命令链接: gcc -m32 -lcurses $^ -o $@ 这会失败,并提供以下错误: /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libcurses.so when searching for -lcurses /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libcurses.a when searching for -lcurses /usr/bin/ld: skipping incompatible /usr/lib/libcurses.so when searching for -lcurses /usr/bin/ld: skipping incompatible /usr/lib/libcurses.a when searching for -lcurses /usr/bin/ld: cannot […]

我怎样才能用go1.6.2构buildlinux 32位版本

有没有GOARCH和GOOS值的组合,我可以设置为了构buildELF 32位二进制?

syscall或sybase在32位Linux上?

由于MS-DOS,我知道使用中断的系统调用。 在旧的论文中,我看到引用int 80h来调用Linux上的系统函数。 既然现在已经很长时间了,我知道int 80h已经被弃用了,而且是有利于syscall 。 但是我不能在我的32位机器上工作。 这个问题 syscall指令是否仅在64位平台上使用? Linux 32位不使用syscall吗? 样品testing 在我的32位Linux(Ubuntu Precise)上,这个程序终止于一个核心转储: global _start _start: mov eax, 4 ; 4 is write mov ebx, 1 ; 1 is stdout mov ecx, message ; address of string mov edx, length ; number of bytes syscall mov eax, 1 ; 1 is exit xor ebx, […]

无法在64位Linux上运行32位应用程序

我有一个非常小的Ubuntu 8.04 64位安装。 当我尝试运行一些32位程序时,例如我的jhead程序,我得到消息No such file or directory 。 我想这可能是一个图书馆的问题,但是当我这样做的时候: ldd jhead 而不是它需要的库列表,我只是得到消息not a dynamic application 。 对于我使用的另一个旧的32位应用程序也是如此。 所以会出现一些运行32位应用程序的非常重要的组件。 但是我怎么才能确定这些是什么?

如何使用mingw-w64编译和链接32位Windows可执行文件

我使用Ubuntu 13.04并使用apt-get install mingw-w64 。 我可以使用下面的命令编译并链接我的程序的一个可用的64位版本: x86_64-w64-mingw32-g++ code.cpp -o app.exe 其中生成一个64位的app.exe文件。 我用什么二进制或命令行标志来生成一个32位版本的app.exe?

在64位ubuntu编译32位汇编程序

我有用32位汇编语言编写的程序…现在我只是不能在64位操作系统上编译它。 在我们的学校他们是具体的,程序必须写在32位版本。 这是我的程序: bits 32 extern _printf global _start section .data message db "Hello world!!", 10, 0 section .text _start: pushad push dword message call _printf add esp, 4 popad ret 任何想法? 我已经尝试了很多方法来编译它。 编译后输出错误: nasm -f elf64 vaja4.asm ld vaja4.o -o vaja4 ./vaja4 输出: vaja4.o: In function `_start': vaja4.asm:(.text+0x7): undefined reference to `_printf'

Linux上pid_t,uid_t,gid_t的大小

在Linux系统(32位或64位)上, pid_t , uid_t和gid_t的大小是多less?

将32位库链接到64位程序

我有一个32位.so二进制只有库,我必须生成使用它的64位程序。 有没有一种方法来包装或转换它,所以它可以用于64位程序?

什么是使用win32inet.WinHttpGetProxyForUrl正确的方法

我正在尝试使用Win32com开发人员公开的Microsoft WinHttp库的function。 不幸的是,大多数的库似乎没有被logging,也没有正确的方式通过win32com库使用win32inetfunction的例子。 这是我迄今为止: import win32inet hinternet = win32inet.InternetOpen("foo 1.0", 0, "", "", 0) # Does not work!!! proxy = win32inet.WinHttpGetProxyForUrl( hinternet, u"http://www.foo.com", 0 ) 正如你所看到的,我所要做的就是使用win32inetfunction找出哪个代理是适用于给定URL的代理,在他的情况下是foo.com。 你能帮我纠正最后一行的语法吗? MSN有一些很好的包装函数的文档,但参数似乎并没有完全映射到Python库的那些文件。 这个脚本的固定版本应该: 能够查找哪个代理使用任何给定的url。 它应该总是做什么Internet Explorer会做(即使用相同的代理) 它应该在任何有效的Windows XP设置上有效。 这意味着它应该使用一个明确configuration的代理,也没有代理。 它只需要在Python 2.4.4上使用Windows XP 32bit。 它可以使用任何官方发布的win32com版本。 我在Windows XP上使用Python2.4.4和Win32Com。 更新0: 或者…你可以给我一个在cTypes的替代实现? 只要我能使它工作,我很高兴!

在32位和64位Windows版本上的进程大小和行为差异

我正在调查我的应用程序的一个奇怪的问题,其中2个版本的Windows的行为是不同的: Windows XP(32位) Windows Server 2008(64位) 我的发现如下。 Windows XP(32位) 在运行我的testing场景时,XMLparsing器在parsing一个非常大的configuration文件的过程中某个时候失败(请参阅此问题以获取更多信息)。 在失败时,进程大小约为2.3GB。 请注意,registry项已设置为允许进程超过默认的最大进程大小(在32位操作系统上)为2GB。 失败的系统是调用IXMLDOMDocument::load()失败,如上面链接的问题中所述。 Windows Server 2008(64位) 我在Windows Server 2008中运行完全相同的testing场景 – 唯一的variables是操作系统。 当我看着我的任务pipe理器下的进程,它旁边有一个* 32 ,我假设它意味着它在32位兼容模式下运行。 我注意到的是,在Windows XP上XMLparsing失败的地方,Windows Server 2008上的进程大小只有大约1GB(IOW,大约是Windows XP的一半进程大小)。 在Windows Server 2008上,XMLparsing不会失败,它一切正常。 我的问题是: 为什么32位应用程序(以32位模式运行)在64位操作系统上占用一半内存量? 是真的使用了一半的内存,它是不同的通常的虚拟内存,还是其他的东西? 确认我的应用程序(似乎)使用Windows Server 2008上的一半内存量,没有人有任何想法,为什么XMLparsing将在Windows XP上失败? 每次运行testing用例时,通过IXMLDOMParseError访问的错误(请参阅此答案 )是不同的。 因为这似乎是非确定性的,它暗示我正在遇到内存使用问题,而不是处理格式不正确的XML。