Articles of 32bit 64bit

如何在64位Linux上使用64位浏览器和64位Java插件获取32位JREpath

我的应用程序由三部分组成: 小程序 Java程序(myapp.jar) JNI库(myjni.so) 请注意,JNI库是为32位构build的。 在32位操作系统上,applet使用java.home属性来获取JREpath。 一旦applet获取了JREpath,它将像这样启动JAR JRE-path myapp.jar 现在我需要在64位Linux上运行这个应用程序。 在这里我有两个select: build立64位的JNI库。 这是不可能的,因为所有依赖的库需要为64位构build。 (这是我的一个限制) 要求用户安装32位的JVM现在的问题是如何获得32位的JREpath,因为java.home属性给出了64位的JREpath。 (因为浏览器和插件是64位)。 一种select是使用update-alternatives –list java命令获取所有JRE安装path。 然后,对于每个安装path,运行JRE-path -d32 –version命令查看它是否支持32位JVM 如果它支持32位JVM,则使用该JREpath启动JAR文件 如果没有一个java安装支持32位JVM,则显示消息以安装32位JVM 题: 上述解决scheme有没有问题? (我需要在Ubuntu,Redhat和OpenSuse上使用这个解决scheme) 有没有更好的解决scheme,以获得64位Linux上的32 JREpath?

JACK midi事件在64位机器上丢失

我有一个在Linux下使用JACK MIDI的应用程序。 它可以在32位机器上完美工作,但在我的新机器上,这是64位,我总是遇到事件丢失。 我检查了: 值来自jack_ringbuffer_read ,它们都是OK(有效的2-3个字节的MIDI信息); midi_out_port和client ,他们都OK(非空),并出现在我的JACK端口列表; 以下是部分代码: #define MidiMessageSize 3 jack_client_t* client; jack_port_t* midi_out_port; char current_message[MidiMessageSize]; jack_ringbuffer_t* midi_rb; int process (jack_nframes_t nframes, void *arg) { void* output_buffer = jack_port_get_buffer(midi_out_port, nframes); jack_midi_clear_buffer(output_buffer); int read_space = jack_ringbuffer_read_space(midi_rb); if (read_space == 0) return 0; int i; for (i = 0; i < read_space; i += MidiMessageSize) […]

虚拟服务器/ EC2上的32位和64位操作系统

有没有任何理由select一个在Amazon EC2上的32位debian实例的64位debian? 64位应用程序只需要更多的内存(这是至关重要的,并在VPS和云服务器中有很高的溢价)。 在做出这个select时,我还需要考虑其他事情吗?

GCC没有预期的警告

世界 我现在将一些32位C代码移植到64位平台上。 对于下面的代码,当我添加选项时,我认为GCC应该是警告 "-Wall -Wconversion -Wextra"将代码编译为64位平台(x86_64而不是IA64)。 不过,我没有收到任何警告 int len = strlen(pstr); 奇怪的是,当我将代码更改为以下代码时,我可以获得有关“size_t”和“int”之间转换的wanlink size_t sz = strlen(pstr); int len = sz; 环境信息: 海合会版本4.4.7 Linux dev217 2.6.32-358.el6.x86_64#1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU / Linux 任何想法为什么? 编辑:我可以validation一个非常简单的程序。 [jsun @ / TMP] [jsun @ / tmp] cat test1.c #include <stdio.h> #include <string.h> #include […]

32位C程序不再在64位操作系统Linux上将char转换为int

一个简单的问题: 这个function在我的32位Linux上完美工作,然后我得到了一个64位的Linux,现在它不再工作。 我已经缩小到这个函数将数据从Char转换为Int。 它不再这样做。 这是我现在卡在哪里。 所有这些function正在做的是采取这样的格式100×100,然后砍掉x,并保持两边的数字,然后改变他们的诠释。 现在使用atoi现在正在返回垃圾,现在我正在这个64位Linux上运行它。 我必须使用哪种函数调用,现在只能在32位和64位Linux程序上再次运行? int findX(char *whereisX, int *rW, int *rH) { printf("entering findx dia is %s\n\n", whereisX); char *tok1, *tok2, *saveptr; char x = (int) malloc(sizeof(whereisX)); char str1[x]; int bW, bH; strcpy(str1, whereisX); tok1 = strtok_r(whereisX, "x", &saveptr); tok2 = strtok_r(NULL, "x", &saveptr); if ( tok2 == NULL) { printf("found […]

如何使用32位和64位体系结构(linux和osx)在Travis-CI上安装miniconda?

我有一个Python包,有一个编译扩展取决于numpy 。 我想使用Linux和OS X以及64位和32位体系结构来testingTravis CI上的软件包。 由于一切都是痛苦或者非常缓慢,所以我使用了miniconda。 这适用于64位,但我坚持在32位,看到下面的警告: WARNING: Your system is x86_64, but you are trying to install an x86 (32-bit) version of Miniconda2. Unless you have the necessary 32-bit libraries installed, Miniconda2 will not work. We STRONGLY recommend installing the x86_64 version of Miniconda2 on an x86_64 system. Are sure you want to continue […]

64位操作系统(Windows)上的32位应用程序内存限制

使用/ LARGEADDRESSAWARE时,64位操作系统上的32位应用程序的内存限制为2 GB或4 GB。 来源: 一个64位操作系统上的32位进程访问可以有多less内存? 我的问题:这是限制PER进程,还是限制是所有组合的32位进程? 如果有三个32位进程正在运行(在64位操作系统上),我可以使用多达12 GB的内存(每个4个),还是将它们限制在共享的4 GB之间?

在64位Linux上的三星智能电视

我知道,在智能电视SDK的规范中,它写了它需要32位系统。 但是,有可能以某种方式在64位Linux上运行SDK? 静静地运行适应的eclipse失败,没有输出,也没有创build窗口。 谢谢

编译一个32位的二进制文件,在一个64位的Debian混音主机上使用ssl

我试图编译一个32位二进制文​​件,在debian wheezy 64位主机上使用openssl。 我已经按照我认为是添加i386体系结构和安装libssl1.0.0:i386的build议方法。 只是一个简单的testing程序无法链接: #include <openssl/ssl.h> int main(void) { SSL_load_error_strings(); return 0; } $ gcc -m32 -lssl -o test -Wall test.c /usr/bin/ld: cannot find -lssl collect2: error: ld returned 1 exit status 没有-m32的同样的命令工作正常。 我有一个32位的libssl: $ locate libssl | grep i386 /usr/lib/i386-linux-gnu/libssl.so.1.0.0 /usr/lib/i386-linux-gnu/i586/libssl.so.1.0.0 /usr/lib/i386-linux-gnu/i686/cmov/libssl.so.1.0.0 添加–verbose显示链接器命令: /usr/lib/gcc/x86_64-linux-gnu/4.7/collect2 –sysroot = / –build-id –no-add-needed –eh-frame-hdr -m elf_i386 –hash-style […]

检测一个32位进程是否在Linux下的64位环境中运行

我正在分发一个32位版本的软件。 我想在运行时检测它所运行的用户级是64位,并且能够运行64位可执行二进制文件(ELF 64位x86-64)。 这与在编译时检测一个体系结构是32位还是64位不是一回事。 我会理想喜欢以最便携的方式做到这一点,所以宁愿避免做file $(which init) | grep x86-64 file $(which init) | grep x86-64这取决于 我不认为阅读cpuid是一个解决scheme – 有可能有一个64位CPU上运行的32位操作系统。 检测64位cpu在长模式下运行似乎也不是一个解决scheme,也没有检测内核本身是否是64位,因为有可能是操作系统是一个64位内核的32位用户用户(可能与一些Debianconfiguration )。 我主要不想检测32和64以外的位数。 我能想到的一个可能的强大的解决scheme是实际包含并试图调用一个64位的ELF二进制文件,看它是否运行,但是这不是一个非常有效的方法。 有没有一个Linux的function,或者在stl或boost,可以帮助我find可靠的? 具有讽刺意味的是,一旦在Windows下解决等价的问题是非常容易的 。