Articles of 32位64位

编译64位Linux的32位GTK +应用程序

我在编译64位Linux(特别是Ubuntu 10.04)上的32位GTK +应用程序时遇到一些麻烦。 编译64位GTK +应用程序可以正常工作,并且所有设置都可以编译32位应用程序,但是它不适用于GTK + 我有一个非常简单的testing程序,我正在使用这个testing程序,它只是一个gtk_init和一个gtk_main,它编译成-m64。 我正在用gcc 4.6.2编译,调用它: gcc -m32 gtktest.c `pkg-config –cflags gtk+-2.0` `pkg-config –libs gtk+-2.0` 这些是我得到的两种不同的错误消息: /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/../../../../x86_64-unknown-linux-gnu/bin/ld: warning: libXext.so.6, needed by /usr/lib/../lib32/libgtk-x11-2.0.so, not found (try using -rpath or -rpath-link) 和 /usr/lib/../lib32/libgdk-x11-2.0.so: undefined reference to `XmbSetWMProperties' 请记住,这些不是唯一的错误,我只是包括两个特定types的参考,并保持它的简短,我得到整个GTK +库的错误。 我在我的lib32文件夹中拥有所有正确的32位版本的库。 希望有人以前有过这个问题,可以帮助我,这真的让我颇为头痛,而且我在网上的任何地方都帮不了什么忙。 请询问是否有任何其他信息需要我提供以帮助诊断此问题。 注:我有ia32-libs和gcc-multilib软件包。 Ubuntu 10.04没有单独的ia32-libs-gtk软件包,但是我认为它们被封装到ia32-libs软件包中。 他们都在我的系统上。 我认为这一定是某种链接器configuration问题。 我最近构build了新的Free Pascal编译器和一个32位交叉编译器,并且我还将GCC升级到了4.6.2,以便利用一些新的C ++特性并修复C99支持。 我的系统中仍然存在默认的4.4.3 GCC。 在我认为问题已经出现的时候,我安装了一个新的binutils,因为我一直在试验Clang和LLVM作为一个工具链,而且我想和ld提供插件function,所以我想不妨把它们全部升级。 一切工作正常编译64位程序,新工具根本没有一个单一的问题,我可以编译32位程序,但是当它来明确地链接的东西的时候我有问题。 […]

机器types(C ++程序库):i386与x86_64

我对于不同的机器架构(32位,64位,…)没有多less了解。 正因为如此,在不同的机器上使用C ++库时,我常常遇到困难的“未定义的架构符号…”。 如果有人能向我解释为什么当我在同一台机器上使用下面的命令(一个2年前的Mountain Lion操作系统的mac)时,我会得到如此令人困惑的答案。 该man uname表示 -m打印机器的硬件名称。 -p打印机器处理器架构名称。 首先,我会说,-p更相关。 所以我运行uname -p ,我得到: i386 (这意味着32位如果我没有错)。 但是对于我在同一台机器上编译的库,运行lipo -info lib_test.a返回: input文件lib_test.a不是一个胖文件 非胖文件:lib_test.a是架构:x86_64 (这意味着64位如果我没有错) 然而,后者与uname -m的回归更为一致 x86_64的

使用哪个命令来检查python是64位还是32位

我无法find任何命令来检查我的Python是编译为32位系统或64位系统。 我试过了 python 它只会告诉版本 另外,当我去python下载网站,他们有一个版本的Python for Linux,但两个版本的Mac即32位和64位。

PHP可以告诉服务器是否是64位的?

我在这里处理Windows。 我知道你可以使用$_SERVER['HTTP_USER_AGENT']variables来检测浏览器查看页面的操作系统,但是PHP可以检测到服务器的操作系统的任何方式吗? 对于我的程序的用户界面,我正在使用PHP网页。 我需要读取位于64位操作系统上不同位置的registry中的密钥(位于Wow6432Node密钥下)。 PHP可以告诉它在哪个操作系统上运行? PHP可以告诉操作系统是64位还是32位?

我可以在构buildpyinstaller可执行文件时控制体系结构(32位和64位)吗?

简短的问题 在构buildpyinstaller可执行文件时,有没有办法控制/保证体系结构(32位和64位)? 背景 我从py2exe迁移到pyinstaller是因为缺乏64位的支持以及一些我很难看的过去的小事情。 所以在这个笔记上,我不想回到它。 我使用Python 2.7 64位开发了两个应用程序,并且在32位机器上运行时遇到性能问题。 首先是一个简单的wxPython GUI(版本2.9),并连接到一个USB驱动程序的Windows DLL文件。 这个看起来非常“安全”,以32位的方式运行,因为没有只有64位的模块。 但是,在32位Windows XP上运行时,这个应用程序在与USB设备交谈时会遇到可怕的性能问题。 第二个应用程序要大得多,我还没有试图build立和运行,因为害怕架构问题。 这个应用程序只有一个64位的模块(psycopg2)。 我想远离试图build立这个如果不可能作为一个32位的可执行文件运行。 当前的想法 我觉得这可能是可行的(如果模块有32位支持),通过在32位模式下强制运行python build.py。 这有意义吗? 更新 我在build设的第一个项目上有了几个突破。 事实certificate,性能问题完全取决于两台机器的速度。 我的开发机器有足够的能力来轮询USB设备足够快,而慢得多的testing平台(Windows XP)没有。 我通过修改USB端口轮询的方式解决了这个问题。 现在,这是固定的,我可以在两个系统上运行exe。 尝试将可执行文件构build为单个文件时,出现了一个新问题。 当运行pyinstaller的Build.py时,它将引入应用程序需要运行的所有必需的DLL。 这似乎起初工作很好,但是当我试图运行我build立在Windows 7 64位的单个exe,它不会在Windows XP上运行,因为USBencryption狗的DLL不被识别为有效的DLL。 为了让单个exe在两个系统上运行,我首先尝试从.spec文件(它似乎是一个python脚本)中删除DLL。 这很方便,因为我可以使用普通的python list修饰符修改build命令之前的包含列表。 我的希望是,如果在exe的临时目录中找不到该DLL,它会在系统PATH上find它。 虽然这种方法可能工作,但我不能没有抛出很多错误就运行。 我的第二个尝试是在Windows XP机器上build立应用程序(离开DLLembedded),希望Win XP DLL能够在Windows 7中工作。成功! 这个configuration工作正常。 但是我坚信,这不是最好的解决scheme,因为它完全依赖于在较新的操作系统上运行的较旧的DLL。

JVM在32位操作系统上堆积

我使用32位win.7和使用Eclipse。 还有4GB内存。 我想分配我的Java应用程序的最大堆大小约3 GB,但我能够通过VM参数分配最大1.5GB -Xmx1056m 。 我该怎么办? 如果我安装一个64位win.7。 那么将能够分配3GB的heapsize到我的应用程序?