用英特尔编译器进行跨平台编译

最近,有些工程师使用英特尔C/C++编译器在64位机器上编译32位的应用程序时,遇到了一些问题;例如:安装完32位和64位编译器后,使用 -m32编译选项无法工作;另外,有些人想知道是否在32位机器上能编译64位应用程序?等等相关问题。

 

为了方便,我将有关信息总结如下:

 

首先,还是让我们看看用户手册上是如何定义和说明有关 m32 m64选项的吧!

 

m32, m64

Tells the compiler to generate code for a specific architecture.

通知编译器生成用户说明的特殊架构的机器代码

IDE Equivalent

相应的IDE环境

None

Architectures

目前支持的架构

IA-32, Intel® 64 architectures

IA-32Intel® 64架构

Syntax

语法说明

Linux and Mac OS X:

-m32

-m64

 

Windows:

None(无)

Arguments

参数

None (无)

Default

缺省值

OFF

The compiler's behavior depends on the host system.

编译器的行为依赖主机系统的架构

Description

详细描述

These options tell the compiler to generate code for a specific architecture.

以下这些编译选项通知编译器生成一种说明的特殊架构的机器代码

Option

编译选项

Description

详细描述

-m32

Tells the compiler to generate code for IA-32 architecture.

通知编译器生成IA-32架构的代码

-m64

Tells the compiler to generate code for Intel® 64 architecture.

通知编译器生成Intel®-64架构的代码

The -m32 and -m64 options are the same as Mac OS* X options -arch i386 and -arch x86_64, respectively. Note that these options are provided for compatibility with gcc. They are not related to the Intel® C++ compiler option arch.

-m32-m64选项分别对应Mac OS* X系统里编译器选项的–arch i386 –arch x86_64。需要说明的是这些选项与gcc相兼容。他们和Intel® C++编译器选项中的arch无关。

 

如果你想使用上述特性开发自己的项目,你需要检查一下你的开发系统是否满足下面的要求(请参考Intel® C++ Compiler Professional Edition 11.1 for Linux Installation Guide and Release ntoes.pdf获取更详细的信息)

 

Requirements to development IA-32 architecture applications

开发IA-32架构应用程序的要求

l  A PC based on an IA-32 or Intel® 64 architecture processor supporting the Intel® Streaming SIMD Extensions 2(Intel® SSE2) instructions;

一台IA-32Intel® 64架构处理器的PC机,并且支持INTEL® Straming SIMD Extensions 2Intel®SSE2)指令集

l 

l  If developing on an Intel ®64 architecture system, some Linux distributions may require installation of one or more of the following additional Linux components: ia32-libs, lib32gcc1, lib32stdc++6, libc6-dev-i386, gcc-multilib

如果在Intel® 64架构系统上开发Linux程序,一些Linux包需要事先安装:ia32-libs, lib32gcc1, lib32stdc++6, libc6-dev-i386, gcc-multilib

 

Requirements to Develop Intel® 64 Architecture Applications

开发Intel® 64架构应用程序的要求

 

l  A PC based on an Intel® 64 architecture processor

一台Intel® 64架构处理器的PC

l 

l  Linux component containing 32-bit libraries(may be called is32-libs)

包含32-bit开发包的Linux组件(开发包是ia32-libs

 

MSVS2008MSVS2005上如何编译

 

我们看到相关的编译选项 –m32 –m64是在LinuxMac OS系统上的使用的,微软视窗系统开发环境并没有相关的说明。当我们使用MSVS2005MSVS2008开发相关系统时,在项目的配置管理员属性对话框里,通过设置当前结果平台参数完成是否生成Win32Win64的目标代码。

从上面的说明我们可以看到,到目前为止,系统并不支持在一台32位系统上编译64位的目标代码。这也是一些开发人员经常问到的问题。所以但我们计划开发相关块平台的项目时,尤其是不同架构的系统时,我们需要认真地检查一下我们开发的系统配置是否支持相关工作的开发。

 

希望上述总结能方便相关信息的查找和说明!

Intel C++ 编译器Windows版》(Intel.C.Plus.Plus.Compiler.v10.0.026)[Bin] 软件版权归原作者及原软件公司所有,如果你喜欢,请购买正版软件 常驻服务器 : DonkeyServer No2, 7x24, 根据工作需要暂停 [版本说明] 截止到2007-08-15为最新版, 仅包含Windows平台, 支持 IA32 / Intel64 / IA64处理器 [病毒检测] NOD32 v2.7 2007-08-15 [安装测试] Windows 2003 SP2 / Visual Studio 2005 SP1 [产品主页] [ http://www.intel.com/cd/software/products/...9578.htm ] [产品简介] 个人翻译, 以原版英文为准: 概要: -------------------------------------------------------------------------------- Intel C++编译器专业版为创建多线程应用程序提供最好的支持。只有专业版才提供对高级优化、多线程和处理器支持(?)。包括自动处理器派发、向量化、自动并行处理、OpenMP*、数据预取、循环展开,还有为并行化、数学运算和多媒体库而高度优化的C++模版。 专业版把高效的编译器Intel® Threading Building Blocks (Intel® TBB), Intel® Integrated Performance Primitives (Intel® IPP) and Intel® Math Kernel Library (Intel® MKL)整合到了一起。虽然这些库也可以单独获取,但是专业版在一个显著折扣价位上为构建稳定高效的并行代码提供了一个强大的基础。 标准版编译器和专业版有着相同的效能和特性, 但是不提供多线程库。 特性: -------------------------------------------------------------------------------- 效能: 考虑使用Intel C++编译器专业版来最佳化效能。内间的优化技术和多线程支持帮助您创建可以在最新的多核处理器上运行best的代码。 高级优化特性: 使用IntelC++编译器Windows版编译的软件可以受益于高级优化特性, 这里有一些简要介绍, 并且链接到完整描述: * Multi-Threaded Application Support, including OpenMP and auto-parallelization for simple and efficient software threading. * Auto-vectorization 并行化代码来利用最新处理器的SSE指令集构架(SSE, SSE2, SSE3, SSSE3, and SSE4)。 * High-Performance Parallel Optimizer (HPO)(高效能并行优化器) 重新组织和优化循环来确定auto-vectorization, OpenMP, or auto-parallelization 最好的利用处理器的缓存、内存访问、SIMD指令集和多核能力。这个由10.0版本而来得新的革命性的能力,组合了向量化、并行化和循环转化到一个比先前分散模块更快、更有效率和更可靠的单个过程。 * Interprocedural Optimization (IPO) 大幅的改善了被频繁使用的中小规模函数的效能,尤其是在循环内包含调用的程序。这个优化器的分析能力还可以对代码弱点和代码错误给出反馈,诸如未初始化的变量或者OpenMP API issues这些严格依赖编译器前端的编译器不能检测到的状况。 * Profile-guided Optimization (PGO) 通过减少指令缓存thrashing、重新组织代码布局、收缩代码大小和降低分支预测失败来改善程序效能。 * Optimized Code Debugging with the Intel® Debugger(使用Intel调试器调试优化后的代码)改善了为Intel架构优化代码的调试过程的效率. 本版本新特性: -------------------------------------------------------------------------------- 此Intel C++编译器Windows版本构建于一个winning foundation之上。它使您能够为下一代硬件创建下一代应用。 改善的效能和Threading * 新的并行/循环优化器 * 改善的C++优化 * 异常处理和类层次分析 安全监测和诊断 * 缓冲区溢出静态验证 * OpenMP API 验证 VISTA 和 Visual Studio 2005 支持 优化报告 支持最新的多核处理器 * Intel® Core™2 Duo processor * Intel® Core™2 Quad processor * Quad-Core Intel® Xeon® processor 5300 series * Dual-Core Intel® Xeon® processor 3000 series * Dual-Core Intel® Xeon® processor 5000 series * Dual-Core Intel® Xeon® processor 7000 series * Dual-Core Intel® Itanium® 2 processor 提供专业版本 Advanced Optimization Features in Depth -------------------------------------------------------------------------------- ... ... 兼容性和适应性 -------------------------------------------------------------------------------- ... ... 可与Microsoft Visual Studio 2005, Visual Studio .NET 2002/2003, and Visual Studio 98集成,并提供扩展的32位和64位多核Intel处理器支持。 Intel C++ 编译器提供下列语言一致性 * ANSI/ISO C 语言标准一致性 (ISO/IEC 9899:1990) * ANSI/ISO C++语言标准一致 (ISO/IEC 14882:1998) * OpenMP 规范版本 2.5 系统需求
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值