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位程序?

在32位Windows上,C ++应用程序可用的最大内存是多less?

只是想知道C ++应用程序使用的最大内存是否有限制 我知道这是2GB – 这是正确的吗? 如果一个C ++应用程序试图请求更多的2GB内存,这是否会导致内存崩溃? 最后一个问题 – 如果C ++应用程序运行的机器内存已经很less,并且C ++应用程序要求100MB的数组(即连续内存),操作系统是否可以通过虚拟内存来适应这个问题?

32位和64位进程之间的memcpy性能差异

我们有Core2机器(戴尔T5400)与XP64。 我们观察到,在运行32位进程时,memcpy的性能在1.2GByte / s左右; 但是64位进程的memcpy达到了2.2GByte / s(或者Intel编译器的CRT的memcpy为2.4GByte / s)。 虽然最初的反应可能只是解释这一点,因为在64位代码中有更广泛的寄存器可用,但是我们观察到我们自己的memcpy-like SSE汇编代码(它应该使用128位宽的加载存储,而不pipe32 /进程的64位)在它实现的复制带宽上展现出类似的上限。 我的问题是,这有什么不同呢? 32位进程是否需要通过一些额外的WOW64箍来获取内存? 这是与TLB或prefetchers或…什么? 感谢您的任何见解。 也在英特尔论坛上提出。