精华内容
下载资源
问答
  • 2021-05-11 20:03:43

    用PITA算法做靶标预测的时候,要用到ViennaRNA包做结构的折叠,这个包是被修改过的,原来的包在我机子上是可以装的。但是这个修改过的包编译不通过。很奇怪的错误,不知道怎么改。

    好在它有两个版本,64位和32位的。我弄到大型机上去编译32位的,也是出错,不过是命名空间的问题,我改两个头文件就可以通过了。最近又要算。那个大型机最近被搬走了。只能本机上做。

    所以折腾了一下,在64位的系统里编译32位的程序。

    CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ OS: Ubuntu

    7.10/Linux 2.6.20-15-server #2 SMP Sun Apr 15 06:22:36 UTC 2007

    x86_64 GNU/Linux GCC: gcc (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4)

    首先需要安装32位的兼容库

    apt-get install ia32-libs libc6-dev-i386 linux32

    1.用linux32命令在configure时改一下CHOST,设置一下编译环境

    $ linux32 ./configure

    #系统类型将变为:i686-pc-linux-gnu #而不是x86_64-unknown-linux-gnu

    2.设定GCC的参数

    export CFLAGS=”-m32 -04 -march=i386 -mtune=i386”

    #最关键是-m32

    -m32, -m64 Generate code for a 32-bit or 64-bit environment. The

    32-bit environment sets int, long and pointer to 32 bits and generates

    code that runs on any i386 system. The 64-bit environment sets int to

    32 bits and long and pointer to 64 bits and generates code for AMD’s

    x86-64 architecture.

    3.编译

    make

    4.安装

    sudo make install

    最终是成功地安装了。破PC机又得跑好多天了。

    更多相关内容
  • masm 的编译选项编译选项非常重要,直接影响编译及连接能否成功
  • x86-64 与 IA-64 x86-64一般称为AMD x86-64,难道x86-64不是Intel首先搞出来的指令集么?...当时的x86-64架构诞生颇有时代意义,处理器的发展遇到了瓶颈,内存寻址空间由于受到32位CPU的限制而只能最大到约

    x86-64 与 IA-64
    x86-64一般称为AMD x86-64,难道x86-64不是Intel首先搞出来的指令集么?这回的确是AMD干的,但是用的是Intel 16bits升到32bits向下兼容的套路。大致是这样的:

    x86:从1978年来的8086处理器开始,就已经出现了x86架构CPU,即32位处理器。
    x86-64:又简称为x64,最初开发为1999年AMD,为了扩充IA64。当时的x86-64架构诞生颇有时代意义,处理器的发展遇到了瓶颈,内存寻址空间由于受到32位CPU的限制而只能最大到约4G。于是就有了x86-64。后被INTEL所采用。
    ia-64:其实ia64的历史早于x86-64x,最初由INTEL和惠普联合推出。由于ia-64不与32位兼容,所以没有受到重视。直到INTEL采用了AMD的x86-64架构,才正式的批量生产。而后为了日益扩张的计算需求,INTEL重新将IA-64拿出来,发布了安腾系列服务器CPU。
      x86-64架构基于x86,是为了让x86架构CPU兼容64位计算而产生的技术。X86-64架构的设计是采用直接简单的方法将目前的x86指令集扩展。这个方法与当初的由16位扩展至32位的情形很相似。优点在于用户可以自行选择x86平台或x64平台,兼容性高。

    IA-64则是原生的纯64位计算处理器,并且与x86指令不兼容。如果想要执行x86指令需要硬件虚拟化支持,而且效率不高。优点在于IA-64架构体系将拥有64位内存寻址能力,能够支持更大的内存寻址空间。并且由于架构的改变,性能比起x86-64的64位兼容模式更高更强。
      所以,IA-64操作系统也是比较少见的,由于只能在INTEL安腾系列处理器及AMD部分服务器处理器运行,所以主流市场并不常见。而且,这些IA-64架构处理器也不能够使用x64操作系统。而x86-64处理器则可以自由选择x86或是x64操作系统。
      
    编译选项
    These `-m’ switches are supported in addition to the above on AMD x86-64 processors in 64-bit environments.
    -m32
    -m64
    -mx32
    Generate code for a 32-bit or 64-bit environment.

    The -m32 option sets int, long and pointer to 32 bits and generates code that runs on any i386 system.
    The -m64 option sets int to 32bits and long and pointer to 64 bits and generates code for AMD’s x86-64 architecture.
    The -mx32 option sets int, long and pointer to 32 bits and generates code for AMD’s x86-64 architecture.
    For darwin only the -m64 option turns off the -fno-pic and -mdynamic-no-pic options.
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    -mx32选项编译出的程序只能在x86-64上运行

    展开全文
  • 1.确认主机为64架构的内核,应该输出为adm64,执行:@H_502_1@$ dpkg --print-architecture2.确认打开了多支架功能,应该输出为i386,执行:@H_502_1@$ dpkg --print-foreign-architectures如果没有,则需要手动打开...

    1.确认主机为64位架构的内核,应该输出为adm64,执行:@H_502_1@$ dpkg --print-architecture

    2.确认打开了多支架功能,应该输出为i386,执行:@H_502_1@$ dpkg --print-foreign-architectures

    如果没有,则需要手动打开,依次执行:@H_502_1@$ sudo dpkg --add-architecture i386

    $ sudo apt-get update

    $ sudo apt-get dist-upgrade

    3.安装 gcc multilab,执行:@H_502_1@sudo apt-get install gcc-multilib g++-multilib

    4.注意:用GCC编译时需要加上 -m32,选项@H_502_1@

    因为一般情况下在一个平台上编译本平台的二进制程序,比如在32位平台上编译32位程序而在64位平台上编译64位程序。@H_502_1@

    现在我们来测试一下:@H_502_1@/*************************************************************************

    > File Name: hello.c

    > Author:

    > Mail:

    > Created Time: 2016年12月01日 星期四 13:06:20

    ************************************************************************/

    #include

    int main()

    {

    printf("hello world!\n");

    return 0;

    }

    我们编译一下,首先编译成正常的64位的系统:@H_502_1@gcc -g hello.c -o hello

    把某个程序编译成32位的系统:@H_502_1@gcc -m32 hello.c

    因为没有指定特定的可执行文件的名字,所以生成的文件名叫做a.out@H_502_1@

    我们来看看我们编译之后的结果:

    @H_502_1@

    我们可以发现a.out文件已经成为了32位的可执行文件,hello被编译成为了64位文件。@H_502_1@

    你必须非常努力,才可以看起来毫不费力@H_502_1@

    总结

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    展开全文
  • 在64的机器上编译32位还是62程序,主要是要编译器和链接上加上参数据:-m32 (编译32位) -m64(编译64)自己写Makefile的话,把上面的标志放到编译器和链接参数中就可以了。如果用autoconf生成Makefile的话,则...

    在64位的机器上编译32位还是62位程序,主要是要编译器和链接器上加上参数据:-m32 (编译32位) -m64(编译64)

    自己写Makefile的话,把上面的标志放到编译器和链接器参数中就可以了。

    如果用autoconf生成Makefile的话,则要在configure.in中的编译器和链接器变量上加上上面参数:

    例如:下面例子是编译32位的程序,如果要编译64位的,则把红色的部分换成 -m64

    #                                               -*- Autoconf -*-

    # Process this file with autoconf to produce a configure script.

    AC_PREREQ(2.59)

    AC_INIT(ShowServer, 1.0, kl222@126.com)

    AC_CONFIG_SRCDIR([.])

    AC_CONFIG_HEADER([config.h])

    AM_INIT_AUTOMAKE(ShowServer, 1.0)

    # Checks for programs.

    AC_PROG_CXX

    CFLAGS=" -O2"

    CXXFLAGS="-m32 -D_DEBUG "

    LIBS="-L. -L$ACE_LIB -L$LIB_PATH/lib"

    LDFLAGS="-m32"

    # Checks for libraries.

    AC_CHECK_LIB([pthread], [pthread_create], , exit 1)

    AC_HAVE_LIBRARY([ACE], , exit 1)

    AC_HAVE_LIBRARY([Cfg], , exit 1)

    # Checks for header files.

    AC_HEADER_STDBOOL

    AC_C_CONST

    # Checks for typedefs, structures, and compiler characteristics.

    # Checks for library functions.

    AC_PROG_INSTALL

    AC_OUTPUT(Makefile ShowServer/Makefile TestClient/Makefile)

    linux32、 linux63分别用于设置编译环境

    linux32 ../configure

    linux32 - Set i686 uname emulation processes.  linux64 - Reset uname emulation

    这个命令相当于 ./configure 参数中设置的 --host 和 --build

    在64位平台上编译32位的ACE:

    linux32 ../configure --with-tao=no --enable-ssl=no --prefix=/home/sxit/kl/ACE_wrappers/build --enable-ace-examples=no --enable-ace-tests=no --enable-ace-cdr-swap-on-read=no --enable-reentrant=no --enable-ace-cdr-alignment=no CCFLAGS="-m32 " CPPFLAGS="-m32 " CXXFLAGS="-m32" CFLAGS="-m32"

    注意这里不要加 LDFLAGS="-m32" ,因为 linux32已把环境设置成32的环境。

    在编译libiconv库里,则要加LDFLAGS="-m32" 否则编译出来的为32的.o文件,链接成64位的.so文件

    [root@HYWG libiconv-1.9.1]# linux32 ./configure CCFLAGS="-m32 " CPPFLAGS="-m32 " CXXFLAGS="-m32" CFLAGS="-m32" LDFLAGS=-m32

    展开全文
  • 在64linux上编译32位程序[编辑中]-m32# ld -VGNU ld version 2.15.92.0.2 20040927Supported emulations:elf_x86_64elf_i386i386linux#ld -melf_i386Along with the -m32 flag in gcc, you may need to include ...
  • opencv3.4.1的32位Debug版本x86,通过VS2017编译。 下载解压后,将其添加到opencv3.4.1安装文件目录\opencv-3.4.1\build\文件夹下(与x64在同一文件目录下),将此路径如:E:\OpenCV3\opencv-3.4.1\build\x86\vc15\...
  • 1. 添加 x86编译链接 rustup target add i686-pc-windows-msvc 如果没有相应的 x86 编译环境,执行x86的编译命令 ,会有截图找不到crate的错误 2. 编译x86版本库 继续沿用C# 调用 Rust 库文中的项目代码...
  • 1. 安装需要的库X86_64 的 Redhat / Centos / Scientific 下面,若要编译、运行32位程序,需要安装以下包:yum install libgcc.i686 yum install glibc-static.i686yum install glibc-devel.i6862. 编译器需要添加...
  • CMake编译适合32位操作系统的OpenCV

    千次阅读 2020-03-17 00:38:56
    文章目录一、下载opencv3.411. 下载2. 解压3. 生成文件、下载CMake1. 下载2. 解压、启动CMake ...自己编译一个适用于32位操作系统运行的OpenCV3.41。 一、下载opencv3.41 1. 下载 下载路径:opencv官方地址 ...
  • 编译选项中有-shared-libstdc++,这就意味着你移植的时候要在tdm-gcc中把libstdc++的dll放在exe文件旁。 test2文件夹是测试用的 wxWidgets-3.1.0-headers\include 是头文件 wxWidgets-3.1_tdmgcc5.1_wudimei....
  • 拥有一个工具链文件允许在par编译器的基础上指定一个不同的文件,并且你应该能够在从windows环境编译32位时调整该选项. 现在这是额外的工作,因为从x86_64 Linux操作系统编译32位非常简单,但这个解决方案适用于其他更...
  • cmake 编译 32/64

    2021-05-14 14:19:36
    linux:方法一(选项):option(USE_32BITS "Compile for 32bits processors(linux only)" OFF)方法(命令):CMake .. -DUSE_32BITS=1 (可以写到make_solution.sh 中)CMakelist.txt:if(USE_32BITS)message(STATUS ...
  • GCC 64 32位版与64版、debug版与release版http://blog.csdn.net/holandstone/article/details/7956109为了适应现在越来越流行的64系统,经常需要将代码分别编译32位版和64版。其次,除了需要生成debug版用于...
  • 在官网中并没有给出opencv3.1.0版本的32位的库(lib),但最近在做一个项目,对方要求32位的opencv,所以在这里写一个编译32位的opencv动态库,并且给出vs2015配置32位opencv动态库的过程,最后以一个读取图片的小...
  • gn&ninja 32位

    2020-05-07 23:35:35
    谷歌的ninja和gn工具,非常的好用,官方只提供64的,我编译32位的(兼容性好)。直接解压就行了。对于编译google的项目非常有用
  • 64 Ubuntu下用32 的Qt GCC 编译程序

    千次阅读 2021-05-15 10:51:20
    确认打开多架构支持功能(出现32位依赖问题时,安装32位的包)输入dpkg --print-foreign-architectures显示 i386确认多架构如果没有多架构:输入sudo dpkg --add-architecture i386添加32构架sudo ...
  • Windows下编译FFmpeg 32位和64DLL

    千次阅读 2020-10-13 01:16:04
    此教程编译环境为Win10 64+MSYS2 一.安装MSYS2 1.点击下载 msys2-x86_64-20200903.exe, 也可以去MSYS2官网下载最新版。 2.安装msys2到默认路径 C:\msys64。 3.运行mys2并执行命令pacman -Syu,提示一律输入Y同意...
  • 【Qt】Qt源码编译32位、64

    千次阅读 2020-04-27 18:05:18
    0 环境配置 Windows 10 Visual Studio 2017 Community Qt 5.15.0-beta4 1 下载源码 下载地址 下载qt源码并解压 2 编译配置(32bit &...这一步骤可选择编译版本,32位或64...要编译32位就选x86,64就选x64。 ...
  • 64: aarch64-linux-gnu- 32位:arm-none-eabi-
  • 典型目标包括32位和64x86和ARM。 您可以在不同的物理或虚拟机上进行构建,但这意味着要维护多个系统。 相反,您可以使用GNU编译器集合( GCC )进行交叉编译,从而在一台构建机器上为几种不同的体系结构生成...
  • 目前最新版本已经到了:jpegsr9d.zip版本。 2、根据vs2010编译器的版本10.0,我们下载jpegsr9b.zip...3、64库的编译:使用vs2010的64的命令提示工具: 4、使用vs2010打开:jpeg.sln工程:进行配置管理设...
  • 打开D:\masm32\qeditor.exe再集成环境下汇编, 或运行var.bat设置环境变量后再命令行下汇编 @echo off set include=D:\masm32\include set lib=D:\masm32\lib set path=D:\masm32\bin;%path% echo on
  • Visual Studio 编译6432位程序

    千次阅读 2020-05-15 10:24:56
    用了很久VS一直没有这个需求,现在需要把一个WPF程序(原32位)重新编译成64。 我的系统是64,vs是32位(当然了) 默认一般是“Any CPU” 点击“Any CPU”下拉框,“配置管理” 新建x64或x86,重新...
  • 编译32位openCV 库

    千次阅读 2020-01-19 18:52:26
    但今天,由于一些原因,需要32位的openCV库。 想一下似乎之前没做过什么这方面选择。 打开CMake,在一个新建目录试了一下,也没什么这方面的选项。 搜呗,openCV + Win32,那个结果。。。 找半天就没个靠谱的。 ...
  • RISCV编译32位仿真环境

    2021-08-13 11:26:42
    只是在编译riscv-gnu-toolchain的时候改成了32位 cd riscv-gnu-toolchain #克隆完成进入克隆下来的目录 mkdir build; cd build #创建并进入build文件夹 ../configure --prefix=$RISCV --target=riscv32-unknown-...
  • 这个spirent testcenter API只有32位可用,这意味着我们的tcl解释需要32位。我们使用python中的Tkinter来引导tcl API。 (我最近知道一个python驱动程序是针对testcenter发布的,但这也只是32位)。由于Tkinter集成...
  • 64的Ubuntu,gcc默认生成64的程序,如果想编出32位的程序,就要加 -m32选项。 如果有问题,需要安装依赖 $ sudo apt-get install build-essential module-assistant $ sudo apt-get install gcc-multilib g++-...
  • Ubuntu 64位编译32位程序

    千次阅读 2019-05-20 17:39:24
    一般情况下,一个平台上只能编译当前平台对应的应用程序,比如,64平台编译64应用程序,但是随着64平台的普及,多数采用了64操作系统,而有时又基于某些原因需要编译32位的应用程序. 本文旨在说明如何在64操作...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 262,282
精华内容 104,912
关键字:

编译选项32位