手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

如何在 POWER 上使用 IBM XL C/C Advanced Edition V7.0

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
  • XL C/C C for Linux 库
  • C 标准库
  • C 标准库
  • 在 XL C/C 的手册中,有关于链接顺序的周详信息。

    运行时错误诊断
    也许能够成功地编译和链接程式,但在执行过程中却生成意想不到的结果。这一节将描述了一些普遍错误、如何检测和更正这些错误。

    未初始化变量
    对象未隐式初始化,因此其初始值不确定。假如未配置就使用 auto 变量,那么他可能每次都产生不同的结果。-qinfo=gen 指示编译器将任何自动变量初始化为指定的值。

    运行时检查
    –qcheck 的子选项指定检查空指针、超出数组范围的下标连同和零相除。建议只使用 –qcheck 选项进行调试,因为他会降低应用程式的运行时性能。

    ANSI 别名
    ANSI 别名规则表明指针只能解除对相同类型或可兼容类型的对象的引用。将指针转换为不兼容的类型,然后解除对该类型的引用的这种通用编码习惯违反了这条规则。配置 –qalias=noansi 能够更正程式行为。但是这样做会减少编译器优化应用程式的机会。建议更改程式,使之符合 ANSI 别名规则。

    #pragma option_override
    有时只在进行优化时才出现错误。这时能够关闭对已知会有特定编程错误的函数的优化,同时允许优化程式的其余部分。这条指令允许为特定函数指定备用优化选项。通过有选择地关闭复杂程式中每个函数的优化,他还能够用于确定引起问题的函数。

    编译器选项
    下表对 GCC 和 XL C/C 中常常用到的编译器选项进行了比较:

    表 7. 常常用到的编译器选项

    GCC XL C/C C/C 描述
    -v -v、-V、-# 开启周详模式
    -p/-profile -p 配置编译器生成的对象文档进行概要分析
    n/a -q32、-q64 或配置 OBJECT_MODE 环境变量 创建 32 位或 64 位对象。GCC 64 位编译器位于 /opt/cross/bin 中
    -fsyntax-only -qsyntaxonly 执行语法检查,不生成对象文档
    -fpic -qpic=small 生成共享库中使用的 Position-Independent Code。在 XL C/C 中,Global Offset Table 的大小不超过 64 Kb。假如指定 –qpic,而无任何子选项,则假设 -qpic=small。假如指定了 -qmkshrobj 编译器选项,则启用 –qpic 选项
    -fPIC -qpic=large 允许 Global Offset Table 大于 64 Kb
    -pthread -qthreaded 或 _r 调用模式 创建在多线程环境中运行的程式
    -fno-rtti -qnortti 对于异常处理和 typeiddynamic_cast 操作符的使用,禁止生成运行时类型 –qrtti 识别(RTTI)。在 XL C/C 中,默认值为 -qnortti
    -static -qstaticlink 使用这个选项生成的对象将无法和共享库进行链接
    -static-libgcc -qstaticlink=libgcc 指示编译器和 libgcc 的静态版本链接
    -shared -mkshrobj Instruct 编译器生成共享对象
    -shared-libgcc -qnostaticlink=libgcc 指示编译器和 libgcc 的共享版本链接
    -Wl、-rpath -Wl、-rpath 或 –R 传递用冒号分隔的目录列表,用他来指定运行时链接程式搜索的目录
    -fno-implicit-templates、-frepo -qtempinc、-qtemplateregistry、-qtemplaterecompile 模板实例化
    -w -w 取消警告消息

    -warn64 允许对长型到整型的截断舍位(long-to-integer truncation)进行检查

    -qinfo=<…> 生成信息消息
    -fpack-struct -qalign=bit_packed 使用 bit_packed 排列规则

    -qalign=linuxppc 使用默认 GCC 排列规则来维护和 GCC 对象的兼容性。这个值是默认值



    -O、-O2、-O3 -O、-O2、-O3、-O4、-O5 优化级别

    -qarch、-qtune、-qcache 特定处理器的优化选项

    结束语
    为 了编译使用 XL C/C 为 GCC 编写的应用程式,有多种帮助促进迁移的方法。在编译阶段出现错误时,能够检查应用程式使用的任何 GCC 扩展,并使用前面介绍的运行时诊断技术解决运行时错误。另外,使用 XL C/C 提供的优化功能时,会提高应用程式的性能。

    文章整理:西部数码--专业提供域名注册虚拟主机服务
    http://www.west263.com
    以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!