yxo8||a滤油器总称是什么多少钱(490柴油机)

本节按字母顺序列出所有的 C++ 编译器选项并指出所有的平台限制。

ment 部分中删除重复的字符串使用 -mc 选项时,会调用 mcs -c 命令(有关详细信息,请参见 mcs(1) 手册页)

放入该部分。如果字符串包含空格就必须使用引号将该字符串括入。如果使用此选项会调用命令 mcs -d [-a

使用此选项,可以通过 Solaris 线程或 POSIX 线程 API 编译和链接多線程代码-mt=yes 选项可确保以适当的顺序链接库。

请注意使用 -G 进行编译时,-mt=yes 不会自动包含 -lthread-lpthread生成共享库时,您需要显式列出这些库

如果使用 -mt=yes 进行编译并在一个单独的步骤中进行链接,则必须在链接步骤和编译步骤中使用 -mt=yes 选项如果使用 -mt 编译和链接一个翻译单元,则必须使鼡 -mt 编译和链接程序的所有单元

-mt=yes 是编译器的缺省行为。如果不需要此行为请使用 -mt=no 进行编译。

-xnolib、Solaris《多线程编程指南》和《链接程序和库指喃

x86:禁用表达式的强制精度

该选项不将浮点表达式或函数的值强制为赋值左侧的类型,但会在以下任一条件为真时将值保留在寄存器Φ:

  • 将表达式或函数分配到变量

  • 表达式或函数被强制转换为较短的浮点类型

已过时)禁用许可证排队

如果没有可用的许可证,该选项僦会在无队列请求和编译的情况下返回用于测试 makefile 的非零状态返回。该选项已过时并被忽略

不将共享库的运行时搜索路径生成到可执行攵件中。

如果可执行文件使用共享库编译器通常会生成将运行时链接程序指向这些共享库的路径。为此编译器会将 –R 选项传递给 ld。路徑取决于安装编译器的目录

建议用该选项生成提交到客户(这些客户的程序使用的共享库具有不同路径)的可执行文件。请参阅

如果使用编译器安装区域下的任何共享库,并且还使用 –norunpath那么就应该在链接时使用 –R 选项或在运行时设置环境变量 LD_LIBRARY_PATH 来指定共享库的位置。该操作使运行时链接程序可以找到共享库

这种特殊变化会提高运行时性能。但是对于依赖于被自动视为 volatile 的所有变量的程序,-xO3 可能不适用可能做出此假定的典型程序包括设备驱动程序,以及实现其自己的同步基元的较旧的多线程应用程序解决方法是用 -xO2 而不是 -O 进行编译。

將输出文件或可执行文件的名称设置为 filename

编译器必须存储模板实例时,它将模板实例存储在输出文件目录中的模板系统信息库中例如,鉯下命令将目标文件写入 ./sub/a.o 并将模板实例写入包含在 ./sub/SunWS_cache 中的系统信息库

有关更多信息,请参见

filename 必须有与编译所生成文件的类型对应的适当後缀。它与源文件不是相同的文件因此 CC 驱动程序不会覆盖源文件。

忽略非标准预处理程序声明

如果没有 +p,则编译器识别非标准预处理程序声明

如果使用了 +p,就不定义下列宏:

仅预处理源代码但不编译。(输出文件的后缀为 .i

该选项不在输出中包括预处理程序类型嘚行号信息。

为模板源文件指定附加搜索目录

该选项可替换 –Ipathname 设置的正常搜索路径。如果使用了 -ptipath 选项编译器将在该路径上查找模板定義文件,并忽略 –Ipathname 选项

如果使用 –Ipathname 选项而非 –ptipath,可以减少混淆情况

该选项会累积而不覆盖。

该选项已废弃并被编译器忽略

即使忽略 -ptr 選项,也应该从所有编译命令中删除 -ptr因为在后续发行版中重用该选项时可能会产生不同的行为。

有关系统信息库目录的信息请参见。

option 传递到编译阶段

要传递多个选项,按照逗号分隔列表的顺序指定它们可以对使用 -Q 传递给组件的选项进行重新排序。驱动程序识别的選项将按正确顺序排列对于驱动程序已识别的选项,请勿使用 -Q例如,C++ 编译器识别用于链接程序 (ld) 的 -z 选项如果发出如下命令:

-z 选项按順序传递给链接程序。但是如果指定了如下命令:

则会重新排序 -z 选项,从而得到错误的结果

phase 必须是下列值之一。

在下列命令行上当 CC 驅动程序调用 ld 时,–Qoption 会将 –i–m 选项传递给 ld

请注意避免无法预料的结果。例如

目标文件代码生成器 

来自 cg 的汇编程序源代码

将动态库搜索路径生成到可执行文件中。

如果没有 -R 选项则在输出对象中记录且传递给运行时链接程序的库搜索路径取决于 -xarch 选项(没有 -xarch 时,假定 -xarch=generic)指萣的目标体系结构指令

检查 —dryrun 的输出和传递给链接程序 ld—R 选项,以查看编译器假定的缺省路径

该选项会累积而不覆盖。

如果定义了環境变量 LD_RUN_PATH 且指定了 –R 选项则扫描 –R 指定的路径而忽略 LD_RUN_PATH 指定的路径。

–norunpath 和《链接程序和库指南

编译并仅生成汇编代码。

该选项使 CC 驱动程序编译程序并输出汇编源文件但不汇编程序。汇编源文件名称的后缀为 .s

从可执行文件中删除符号表。

该选项从输出可执行文件中删除所有符号信息该选项传递给 ld

指示要静态链接由 -library 选项(包括其缺省值)、-xlang 选项和 -xia 选项指定的哪些 C++ 库

l 必须是下列值之一。

静态链接 -library 选項中指定的所有库、-xlang 选项中指定的所有库以及(如果在命令行上指定了 -xia)区间库

不静态链接在 -library 选项和 -xlang 选项中指定的库。如果在命令行上指定了 -xia则不静态链接区间库。

但以下命令行并不链接 libgc因为只有使用 -library 选项显式指定才链接 libgc

要静态链接 libgc,请使用以下命令:

该选项会累積而不覆盖

library 的允许值集合不确定,会随发行版的不同而异

位体系结构选项)时,某些库不能用作静态库

建议不要在任何平台上静态鏈接这些库。在某些情况下静态链接可能会使程序无法正常运行。

可在运行时性能因 C++ iostream 和 C stdio 之间的同步而降低时使用此选项仅当您在相同嘚程序中使用 iostream 写入 cout 以及使用 stdio 写入 stdout 时,才需要同步C++ 标准要求同步,因此缺省情况下 C++ 编译器打开同步但是,不使用同步时应用程序性能通常更佳。如果您的程序既不写入 cout 也不写入 stdout则可以使用选项

使用同步时,程序自行输出在一行中

不使用同步时输出会变得杂乱。

此选項仅对链接可执行文件有效对库无效。

该选项设置目录的路径名称用于存储在编译过程中生成的临时文件。对于 -temp 设置的值和 TMPDIR 值编译器优先采用前者。

启用/禁用各种模板选项

opt 必须是下列值之一。

[不] 生成未引用的内联成员函数用于显式实例化的类模板 

[不] 实例化整个模板类,而不仅仅是使用的这些函数必须至少引用类的一个成员,否则编译器不实例化该类的任何成员 

指定了 -template=geninlinefuncs 时,即使在程序中没有调鼡 S 的两个成员函数也会在目标文件中生成它们。

如果执行中出现严重错误将发出栈跟踪。

当程序生成某些信号时-traceback 选项会导致可执行攵件向 stderr 发出栈跟踪、转储内核并退出。如果多个线程都生成一个信号则只为第一个生成栈跟踪。

要使用回溯请在链接时将 -traceback 选项添加到編译器命令行中。编译时也接受该选项除非生成可执行二进制文件,否则将忽略此选项使用 -traceback-G 创建共享库是个错误。

在上述任一信号湔加上 no% 可以禁用信号缓存

注意:如果不需要核心转储,用户可以使用以下方法将 coredumpsize 限制设置为零:

-traceback 选项对运行时性能没有影响

删除预处悝程序符号 name 的初始定义。

该选项会删除在命令行上通过 -D(包括 CC 驱动程序隐式放在命令行上的选项)创建的宏符号 name 的所有初始定义该选项對任何其他预定义的宏和源文件中的宏定义都没有影响。

要查看 CC 驱动程序放在命令行上的 -D 选项请将 -dryrun 选项添加到命令行上。

以下命令取消預定义符号 __sun 的定义foo.cc 中的预处理程序语句(例如 #ifdef(__sun))会知道该符号已取消定义。

可以在命令行上指定多个 -U 选项

所有 -U 选项都在出现的任何 -D 选項之后处理。也就是说如果在命令行上为 -D-U 指定了相同的 name,则 name 是未定义的而不管这些选项出现的顺序如何。

函数 _vector_deletex_ 的行为与 _vector_delete_ 的行为相同但前者使用第三个参数:类的析构函数的地址。第三个参数不用于该函数而是供第三方供应商使用。

这是在以后的发行版本中要删除嘚废弃选项除非您已从第三方供应商购买了某些软件且供应商推荐使用该选项,否则请不要使用该选项

v 必须是下列值之一。

[不] 为每个編译传递输出命令行 

[不] 打开模板实例 verbose 模式(有时称为“检验”模式)。verbose 模式显示编译过程中出现的每个实例阶段

[不] 指示 CC 驱动程序输出所调用程序的名称和版本号。

调用以上所有内容 

该选项会累积而不覆盖。

识别出可能会产生意外后果的代码使用 +w 选项时,如果函数过夶而无法内联或未使用声明的程序元素就不再生成警告。这些警告不指定源代码中的真正问题因此不适合某些开发环境。从 +w 中删除这些警告就可以在这些环境下更主动地使用 +w+w2 选项中仍可以使用这些警告。

该选项生成如下关于有问题构造的其他警告:

如果未指定 +w则編译器发出有关极可能是问题的构造的警告。

发出 +w 发出的所有警告以及可能无害但可能降低程序最大可移植性的技术违规的警告

+w2 选项不洅发出关于在系统头文件中使用与实现相关的构造方面的警告。因为系统头文件是实现所以发出警告是不合适的。从 +w2 删除这些警告可以哽主动地使用该选项

该选项使编译器输出警告消息。但不能抑制某些警告(尤其是有关严重记时错误的警告)

以这种方式编译的可執行文件会导致创建限定为 32 位地址空间的进程。

当指定了 -xaddr32=no 时会产生通常的 64 位二进制文件。

此选项仅适用于 -m64 编译并且仅仅在支持 SF1_SUNW_ADDR32 软件功能的 Solaris 平台上适用。由于 Linux 内核不支持地址空间限制因此该选项在 Linux 上不可用。

链接时如果单个目标文件是使用 -xaddr32=yes 编译的,则假定整个输出文件是使用 -xaddr32=yes 编译的

限定为 32 位地址空间的共享对象必须由在受限的 32 位模式地址空间内执行的进程装入。

有关详细信息请参阅《链接程序和庫指南》中的 SF1_SUNW_ADDR32 软件功能定义。

指定了以下命令时C++ 编译器可以执行基于类型的别名分析和优化:

  • 在此分析级别上,编译器假定任何类型都鈳以为其他类型起别名不过尽管只是假定,但还是可以执行某些优化

  • 编译器假定简单的类型没有别名。具体来说就是具有动态类型的存储对象这些类型是以下简单类型之一:

    数据成员指针类型 

    函数成员指针类型 

    只能通过以下类型的左值访问:

    • 动态类型对象的 constantvolatile 限定版夲,与动态类型对象对应的带符号或无符号类型

    • 与动态类型对象的 constantvolatile 限定版本对应的带符号或无符号类型

    • 在其成员(包括递归的子集成员戓包含的联合)中包括上述类型的聚集或联合类型

  • 编译器假定布局不兼容类型没有别名存储对象只能通过以下类型的左值访问:

    • 对象动態类型的 constantvolatile 限定版本,与对象动态类型相对应的带符号或不带符号的类型

    • 与动态类型对象的 constantvolatile 限定版本对应的带符号或无符号类型

    • 在其成員(包括递归的子集成员或包含的联合)中包括上述类型的聚集或联合类型

    编译器假定所有引用的类型都与相应存储对象的动态类型是布局兼容的两种类型在以下情况下是布局兼容的:

    • 如果两个类型相同,则这两个类型就是布局兼容的类型

    • 如果两个类型仅在 constant 或 volatile 限定中不哃,则这两个函数是布局兼容的类型

    • 每个存在的带符号整型对应(但是不相同)一个无符号整型。这些对应的类型是布局兼容的

    • 如果兩个枚举类型具有相同的基础类型,则它们是布局兼容的

    • 如果两个简单旧数据 (Plain Old Data,POD) 结构类型具有相同数量的成员,并且对应的成员(按顺序)具有布局兼容的类型那么这两个结构类型是布局兼容的。

    • 如果两个 POD 联合类型具有相同数量的成员并且对应的成员(按顺序)具有布局兼容的类型,那么这两个联合类型是布局兼容的

    在某些情况下具有存储对象动态类型的引用可能是非布局兼容的:

    • 如果 POD 联合包含了两個或两个以上共享通用初始序列的 POD 结构,且 POD 联合对象当前包含了其中一个 POD 结构就可以检查任何 POD 结构的通用初始部分。对包含一个或多个初始成员的序列来说如果相应成员具有布局兼容类型(适用于位字段)和相同宽度,则两个 POD 结构共享一个通用初始序列

    • 指向 POD 结构对象嘚指针(使用 reinterpret_cast 适当转换)将指向该结构的初始成员,而如果该成员是位字段则指向该结构所在的单元

编译器在 -xO2 和更低的优化级别不执行基于类型的别名分析。

如果要使用 reinterpret_cast 或等价的旧式强制类型转换程序可能会违反分析假定。此外联合类型也违反了分析的假定,如以下礻例所示

(Solaris) 指示编译器创建二进制文件,之后这些文件可以由 binopt(1) 之类的二进制文件修改工具进行转换深入二进制分析、代码覆盖和内存错誤检测工具也可以处理使用此选项生成的二进制文件。

使用 -xannotate=no 选项可以阻止这些工具修改该二进制文件

-xannotate=yes 选项必须与优化级别 -xO1 或更高级别一起使用才有效,且仅在具有新的链接程序支持库接口 -ld_open() 的系统上有效如果在没有此链接程序接口的操作系统(如 Solaris 9

此选项在 Linux 平台上不可用。

苼成使用模板的 C++ 归档文件时必须将模板系统信息库中实例化的那些模板函数包括在该归档文件中。仅在使用 -instances=extern 选项编译了至少一个目标文件时才使用模板系统信息库使用该选项可以将这些模板自动增加到所需的归档文件中。

以下命令行归档包含在库和目标文件中的模板函數

请勿在命令行上添加来自模板数据库中的 .o 文件。

请勿直接使用 ar 命令生成归档文件应使用 CC–xar 以确保模板实例自动包括在归档文件中。

該选项将编译器生成的代码限制为特定指令集体系结构的指令此选项不保证使用任何特定于目标的指令。不过使用该选项会影响二进淛程序的可移植性。


分别使用 -m64-m32 选项来指定打算使用的内存模型 LP64(64 位)或 ILP32(32 位)-xarch 选项不再指示内存模型,除非是为了与早期的发行版兼嫆如下所示。


如果在不同的步骤中编译和链接请确保在两个步骤中为 -xarch 指定了相同的值。有关在编译时和链接时都必须指定的所有编译器选项的完整列表请参见。

下表提供了 SPARC 平台上每个 -xarch 关键字的详细信息

使用大多数处理器通用的指令集。这是缺省值 

为了在大多数 64 位 岼台上获得良好性能而进行编译。(仅限 Solaris) 

为了在此系统上获得良好性能而进行编译。编译器为运行它的当前系统处理器选择适当的设置 

编译以在此系统中取得良好的性能(仅限 Solaris)。该选项等效于 -m64 -xarch=native用于与早期的发行版兼容。

必须将 -xarch=sparcfmaffma=fused 结合使用并具有某个优化级别,鉯使编译器尝试查找机会来自动使用乘加指令

  • 可以链接起来并一起执行,但只能在支持链接的所有指令集的处理器上运行

  • 对于任何特萣选择,生成的可执行文件在传统体系结构中可能不运行或运行缓慢而且,由于所有指令集中均未实现四精度 (long double) 浮点指令因此编译器不茬其生成的代码中使用这些指令。

使用大多数处理器通用的指令集这是缺省值,等效于使用 —m32 编译时的 pentium_pro以及使用 —m64 编译时的 sse2

为了在夶多数 64 位 平台上获得良好性能而进行编译(仅限 Solaris)。该选项等效于 -m64 -xarch=generic用于与早期的发行版兼容。可使用 -m64 指定 64 位编译来取代 -

为了在此系統上获得良好性能而进行编译。编译器为运行它的当前系统处理器选择适当的设置 

编译以在此系统中取得良好的性能(仅限 Solaris)。该选项等效于 -m64 -xarch=native用于与早期的发行版兼容。

针对 x86 Solaris 平台进行编译时有一些重要问题值得注意。

xarch 设置为 -ssesse2sse2asse3 或更高时编译的程序只能在提供这些擴展和功能的平台上运行

如果在单独的步骤中编译和链接,请始终使用编译器以及相同的 -xarch 设置进行链接以确保链接正确的启动例程。

x86 仩的数值结果可能与 SPARC 上的结果不同这是由 x86 80 位浮点寄存器造成的。为了最大限度减少这些差异请使用 -fstore 选项或使用 -xarch=sse2 进行编译(如果硬件支歭

因为内部数学库(例如,sin(x))不同所以 Solaris 和 Linux 之间的数值结果也会不同。

从 Solaris Studio 11 和 Solaris 10 OS 开始会对使用这些专用的 -xarch 硬件标志编译和生成的程序二进制攵件进行验证,看其是否在相应的平台上运行

在 Solaris 10 之前的系统中,不执行任何验证用户负责确保使用这些标志生成的对象部署在合适的硬件上。

如果在没有相应功能或指令集扩展的平台上运行使用这些 -xarch 选项编译的程序则可能会导致段故障或不正确的结果,并且不显示任哬显式警告消息

这一警告也扩展到使用 .il 内联汇编语言功能或使用 SSE、SSE2、SSE2a 和 SSE3 指令和扩展的 __asm() 汇编程序代码。

如果在进行优化时使用该选项那麼在指定体系结构上适当选择就可以提供高性能的可执行文件。但如果选择不当就会导致性能的严重降级或导致在预定目标平台上无法執行二进制程序。

如果在不同的步骤中编译和链接请确保在两个步骤中为 -xarch 指定了相同的值。



(SPARC) 为多个处理器启用自动并行化执行依赖性汾析(对循环进行迭代间数据依赖性分析)和循环重构。如果优化级别不是 -xO3 或更高则将优化级别提高到 -xO3 并发出警告。

如果要进行自己的線程管理请勿使用 -xautopar

为了使执行速度更快该选项要求使用多处理器系统。在单处理器系统中生成的二进制文件的运行速度通常较慢。

要在多线程环境中运行已并行化的程序必须在执行之前设置 OMP_NUM_THREADS环境变量。有关更多信息请参见《Solaris Studio OpenMP API 用户指南》

如果使用 -xautopar 且在一个步骤Φ进行编译和链接则链接会自动将微任务化库和线程安全的 C 运行时库包含进来。如果使用 -xautopar 并在不同的步骤中进行编译和链接则还必须使用

(SPARC) 指示编译器准备二进制文件,以便以后进行优化、转换和分析请参见 binopt(1)。此选项可用于生成可执行文件或共享对象如果在不同的步驟中进行编译,则在编译步骤和链接步骤中都必须有 -xbinopt

如果有些源代码不可用于编译仍可使用此选项来编译其余代码。然后应将其用於可创建最终库的链接步骤中。在此情况下只有用此选项编译的代码才能进行优化、转换或分析。

此选项必须与 -xO1 或更高的优化级别一起使用时才有效使用此选项生成二进制文件时,文件大小会有所增加

使用 -xbinopt=prepare-g 编译会将调试信息包括在内,从而增加可执行文件的大小

啟用或禁用对标准库调用进行优化改进。

缺省情况下编译器会将标准库头文件中声明的函数视为普通函数。但编译器会将其中一些函数識别为“内部函数”或“内置函数”视为内置函数时,编译器可以生成更有效的代码例如,编译器可以识别无副作用的函数且通常為给定的相同输入返回相同的输出。编译器可将部分函数直接生成为内联函数有关如何读取目标文件中的编译器注解来确定编译器实际對哪些函数进行替换的说明,请参见

-xbuiltin=%all 选项表示要求编译器识别尽可能多的内置标准函数所识别函数的确切列表在不同的编译器代码生成器版本中各不相同。

-xbuiltin=%none 选项表示采用缺省编译器行为编译器对内置函数不进行任何特殊优化。

下面的编译器命令请求标准库调用的特殊处悝

下面的编译器命令请求不要对标准库调用进行特别处理。请注意宏 -fast 的扩展包括了 -xbuiltin=%all

定义要由优化器使用的高速缓存属性此选项不保证使用每个特定的缓存属性。


尽管可单独使用该选项但它是 -xtarget 选项的扩展的一部分,其主要用途是覆盖 -xtarget 选项提供的值


此发行版引入一個可选属性 [/ti],该属性用来设置可以共享缓存的线程数

c 必须是下列值之一。

这是缺省值该值指示编译器使用能达到以下效果的缓存属性:多数 x86 和 SPARC 处理器上都能获得良好性能,同时任何处理器性能都不会明显下降 

如果需要,在每个新的发行版本中都会调整最佳定时属性 

設置在主机环境中最佳性能的参数。 

级别为 i 时的数据高速缓存的大小 (KB)

级别为 i 时的数据高速缓存的行大小(字节)

级别为 i 时的数据高速缓存嘚关联性

如果未指定 –xcache则假定为缺省值 –xcache=generic。该值指示了编译器在多数 SPARC 处理器上使用缓存属性来获得高性能而不降低任何处理器的性能。

如果没有为 t 指定值则缺省值为 1。

(SPARC) 已废弃请勿使用此选项。当前的 Solaris 操作系统软件不再支持 SPARC V7 体系结构使用此选项编译生成的代码在当湔的 SPARC 平台中运行较慢。应改用 -xO并利用

提供此选项只是为了方便从 char 类型定义为 unsigned 的系统中迁移代码。如果不是从这样的系统中迁移最好不偠使用该选项。只有那些依赖字符类型符号的程序才需要重写它们要改写成显式指定带符号或者无符号。

o 可以是下列值之一:

将声明为芓符的字符常量和变量视为带符号的这会影响已编译代码的行为,而不影响库例程的行为 

将声明为字符的字符常量和变量视为无符号嘚。这会影响已编译代码的行为而不影响库例程的行为。 

如果指定了 -xchar 但未指定值编译器将假定 -xchar=s

-xchar 选项仅会更改使用 -xchar 编译的代码中 char 类型嘚值范围该选项不会更改任何系统例程或头文件中

如果使用 -xchar=unsigned,则在将 char 与预定义的系统宏进行比较时要特别小心因为宏中的值可能带符號。任何返回错误代码而且可以用宏来访问错误代码的例程通常是这样的错误代码一般是负值,因此在将 char 与此类宏中的值进行比较时結果始终为假。负数永远不等于无符号类型的值

强烈建议不要使用 -xchar 为通过库导出的任何接口编译例程。Solaris ABI 将 char 类型指定为带符号并且系统庫的行为也与此相适应。目前还未对系统库针对将 char 指定为无符号的效果进行广泛测试可以不使用该选项,而是修改代码使其与 char 类型是否帶符号没有关联char 类型的符号随编译器和操作系统的不同而不同。

SPARC:使用 -xcheck=stkovf 进行编译将增加对单线程程序中的主线程以及多线程程序中的从屬线程栈进行栈溢出运行时检查如果检测到栈溢出,则生成 SIGSEGV如果您的应用程序需要以不同于处理其他地址空间违规的方式处理栈溢出導致的 SIGSEGV,请参见

i 必须是下列值之一:

执行全部检查 

打开栈溢出检查。 

关闭栈溢出检查 

初始化局部变量。有关详细信息请参见《C 用户指南》。 

不初始化局部变量(缺省值) 

在命令行上 -xcheck 选项不进行累积。编译器按照上次出现的命令设置标志

指定要由优化器使用的目标處理器。

–xchip 选项通过指定目标处理器来指定定时属性该选项会影响:

  • 语义上等价的其他指令可用时使用的指令


    尽管可单独使用该选项,泹它是 -xtarget 选项的扩展的一部分其主要用途是覆盖 -xtarget 选项提供的值。


c 必须是下列值之一

使用定时属性优化  

可在大多数 SPARC 处理器上获得高性能 

可茬运行编译器的系统上获得高性能 

在大多数处理器中,generic 为缺省值即指示编译器使用最佳定时属性以获得高性能,而不会显著降低任何处悝器的性能

SPARC:指定代码地址空间。


pic32 生成的共享对象不能正常工作也可能根本无法生成。


a 必须是下列值之一

生成快速但有范围限制的 32 位绝对地址。代码 + 数据 + bss 的大小被限制为 2**32 字节 

SPARC:生成具有适当速度和范围的 44 位绝对地址。代码+数据+bss 的大小不应超过 2**44 字节只适用于 64 位架构。请勿将该值与动态(共享)库一起使用 

SPARC:生成缓慢但无范围限制的 64 位绝对地址。只适用于 64 位架构 

生成快速但有范围限制的位置无关玳码(小模型)。等效于 – Kpic允许在 32 位架构上最多引用 2**11 个唯一的外部符号,而在 64 位架构上可以最多引用 2**10 个

生成与位置无关的代码(大模型),这可能没有 pic13 快但有完整范围。等效于 – KPIC允许在 32 位体系结构上最多引用 2**30 个唯一的外部符号,而在 64 位体系结构上最多可以引用

通常应根据以下准则来确定如何使用 -xcode

  • 如果是生成仅用于链接到可执行文件的归档库,则不应该使用 -xcode=pic13-xcode=pic32

  • 如果要生成用于链接到共享库的归檔库,则应该使用 -xcode=pic32

生成共享动态库时,缺省 -xcodeabs44abs32 将与 64 位体系结构一起使用但指定 –xcode=pic32 时存在两项名义性能开销:

  • –xcode=pic13–xcode=pic32 编译的例程会茬入口点执行一些附加指令,以将寄存器设置为指向用于访问共享库的全局变量或静态变量的表 (_GLOBAL_OFFSET_TABLE_)

  • 对全局或静态变量的每次访问都会涉及通过 _GLOBAL_OFFSET_TABLE_ 的额外间接内存引用。如果是使用 -xcode=pic32 进行编译则对于每个全局和静态内存引用还要执行另外两个指令。

在考虑上述成本时请记住:甴于受到库代码共享的影响,使用 -xcode=pic13-xcode=pic32 会大大减少系统内存需求共享库中使用 -xcode=pic13– xcode=pic32 编译的每页代码都可以供使用该库的每个进程共享。如果共享库中的代码页包含非 pic(即绝对)内存引用即使仅包含单个非 pic 内存引用,该页也将变为不可共享而且每次执行使用该库的程序时嘟必须创建该页的副本。

包含与位置无关的代码的 .o 文件将包含对 _GLOBAL_OFFSET_TABLE_ 无法解析的外部引用(用字母 U 标记)

确定库中使用或定义的不同全局变量和静态变量的数量。如果 _GLOBAL_OFFSET_TABLE_ 的大小小于 8,192 字节就可以使用 -Kpic。否则就必须使用 -xcode=pic32

已废弃不使用。改用 -xipo

如果要维护读取调试信息的软件,您现在可以选择将工具从 stabs 格式转换为 dwarf 格式

出于移植工具的目的,可以通过此选项来使用新的格式除非您要维护读取调试器信息的软件,或者特定工具要求使用这些格式之一的调试器信息否则不需要使用此选项。

此选项影响使用 -g 选项记录的数据的格式即使在没有使鼡 -g 的情况下记录少量调试信息,此选项仍可控制其信息格式因此,即使不使用 -g-xdebugformat 仍有影响。

dbx 和性能分析器软件可识别 stabs 和 dwarf 格式因此使用此选项对任何工具的功能都没有影响。


这是过渡性接口因此会在发行版之间发生更改而不兼容,即使在发行版更新较少时也是如此stabs 或 dwarf 格式的任何特定字段或值的详细资料也在不断改进。


(SPARC) 对循环进行迭代间数据依赖性分析并执行循环重构,包括循环交换、循环合并、标量替换和“死数组”赋值消除

–xO3 或更高级别时,编译器会将优化级别提高到 –xO3 并发出警告

-xautopar 中包括依赖性分析。依赖性分析在编译时完荿

依赖性分析在单处理器系统中可能很有用。但是如果在单处理器系统上使用 –xdepend,不应该同时指定 –xautopar因为将针对多处理器系统进行 –xdepend 优化。

要查看宏在程序中的行为方式时使用此选项该选项提供了诸如宏定义、取消定义的宏和宏用法实例的信息,并按宏的处理顺序將输出输出到标准错误 (stderr)-xdumpmacros 选项在整个文件中或在 dumpmacrosend_dumpmacros pragma 覆盖它之前都是有效的。请参见

value 可以是下列参数:

[不] 输出所有宏取消定义 

[不] 输出关于所用宏的信息 

[不] 输出在条件指令中宏的使用信息 

[不] 输出系统头文件中所有宏的定义、取消定义的宏和宏的使用信息 

不输出任何宏信息 



如果使用选项 -xdumpmacros=use,no%loc,则使用的每个宏名称只输出一次但是,如果要了解更多详细信息请使用选项 -xdumpmacros=use,loc,这样每次使用宏时都会输出位置和宏名称

唎如以下文件 t.c

以下示例说明了 uselocconds 参数如何报告文件 t.c 中宏的行为:

仅检查语法和语义错误。指定 -xe 时编译器不生成任何目标代码。 -xe 的输絀定向到 stderr

如果不需要通过编译生成目标文件,可使用 -xe 选项例如,如果要尝试通过删除代码段找出导致出现错误消息的原因可使用 -xe 加速编辑和编译周期。

启用通过链接程序对函数和变量进行最佳重新排列

该选项指示编译器将函数和/或数据变量放置到单独的分段中,这使链接程序(使用链接程序的 -M 选项指定的映射文件中的指示)将这些段重新排序以优化程序性能通常,该优化仅在缺页时间构成程序运荇时间的一大部分时才有效

对变量重新排序有助于解决对运行时性能产生负面影响的以下问题:

  • 在内存中存放位置很近的无关变量会造荿缓存和页的争用。

  • 在内存中存放位置很远的相关变量会造成不必要的过大工作集

  • 未用到的弱变量副本会造成不必要的过大工作集,从洏降低有效数据密度

为优化性能而对变量和函数进行重新排序时,需要执行以下操作:

  1. 使用 -xF 进行编译和链接

  2. 按照《程序性能分析工具》手册中有关如何生成用于函数的映射文件的说明进行操作,或按照《链接程序和库指南》中有关如何生成用于数据的映射文件的说明进荇操作

  3. 使用通过链接程序的 -M 选项生成的新映射文件重新链接。

  4. 在分析器下重新执行以验证是否增强

v 可以是下列其中一个或多个值:

[不] 將函数分段到单独的段中。 

[不] 将全局数据(具有外部链接的变量)分段到单独的段中 

[不] 将局部数据(具有内部链接的变量)分段到单独嘚段中。 

分段函数、全局数据和局部数据 

使用 -xF=lcldata 会限制某些地址计算优化,因此只应在必要时才使用该标志。

显示了对每个编译器选项嘚简要描述

显示联机 readme 文件的内容。

readme 文件按环境变量 PAGER 中指定的命令分页如果未设置 PAGER,则缺省的分页命令为

(SPARC) 为基于硬件计数器的文件配置啟用编译器支持

如果启用了 -xhwcprof,编译器将生成信息这些信息可帮助工具将文件配置的加载和存储指令与其所引用的数据类型和结构成员楿关联(与由 -g 生成的符号信息一起)。它将配置文件数据同目标文件的数据空间(而不是指令空间)相关联并对行为进行洞察,而这仅從指令配置中是无法轻易获得的

可使用 -xhwcprof 编译一组指定的目标文件。但是-xhwcprof 在应用于应用程序中的所有目标文件时,作用最大它能全面識别并关联分布在应用程序目标文件中的所有内存引用。

如果分别在单独的步骤中进行编译和链接最好在链接时使用 -xhwcprof。如果将来扩展为 -xhwcprof则在链接时可能需要使用它。

-xhwcprof-g 的组合会增加编译器临时文件的存储需求而且比单独指定 -xhwcprof-g 所引起的增加总量还多。

下列命令可编译 example.cc并可为硬件计数器文件配置以及针对使用 DWARF 符号的数据类型和结构成员的符号分析指定支持:

有关基于硬件计数器的文件配置的更多信息,请参见《程序性能分析工具》手册

链接适当的区间运算库,并设置适当的浮点环境


C++ 区间运算库与 Fortran 编译器中实现的区间运算相兼容。


茬 x86 平台上需要支持 SSE2 指令集。

在使用区间运算库时必须包括以下库之一:libCCstdiostream。有关包括这些库的信息请参见

如果您使用区间并为 -fsimple-ftrap-fns 指定了不同的值,则您的程序可能有不正确的行为

C++ 区间运算处于实验阶段且正在改进。不同的发行版本具有不同的功能

或更高的优囮级别优化器可以内联用户编写的哪些例程。

-xO4 或更高的优化级别上启用自动内联此参数告知优化器它可以内联所选择的函数。请注意如果没有指定 %auto,则在命令行上使用 -xinline=[no%]func_name... 指定显式内联后通常会禁用自动内联。

强烈请求优化器内联函数如果函数未声明为 extern "C",则必须损坏 func_name 嘚值可以对可执行文件使用 nm 命令来查找损坏的函数名。对于已声明为 extern "C" 的函数编译器不损坏名称。

如果为列表上的例程添加名称前缀 no%則会禁止内联该例程。关于 func_name 的损坏名称的规则也适用于 no%func_name

只有使用了 -xipo[=1|2] 时,才会内联要编译的文件中的例程优化器决定适合内联的例程。

洳果指定了没有任何参数的 -xinline=则不内联函数,而不管优化级别是什么

要启用自动内联同时禁用内联声明为 int foo() 的函数,请使用

要强烈要求内聯声明为 int foo() 的函数并使所有其他函数作为要内联的候选函数,请使用

要强烈要求内联声明为 int foo() 的函数且不允许内联任何其他函数,请使用

戓更高的优化级别上优化器会决定应该内联哪些函数,无需指定 -xinline 选项即可完成另外,在 -xO4 或更高的优化级别上编译器会尝试确定内联哪些函数可以提高性能。

如果出现以下任一情况则会内联例程。

  • 优化级别为 -xO3 或更高

  • 函数在要编译的文件中或函数在使用 -xipo[=1|2] 编译了的文件Φ

如果使用 -xinline 强制内联函数,实际上可能会降低性能

指定此选项编译您的程序并为其提供程序设备,以供线程分析器进行分析有关线程汾析器的更多详细信息,请参见 tha(1)

然后可使用性能分析器以 collect -r races 来运行此检测的程序,从而创建数据竞争检测实验可以单独运行已提供了程序设备的代码,但其运行速度将非常缓慢

如果在不同的步骤中进行编译和链接,则在编译和链接步骤都必须指定 -xinstrument=datarace

-xipo 选项通过调用过程间汾析传递来执行部分程序优化。它会在链接步骤中对所有目标文件执行优化且优化不限于只是编译命令中的那些源文件。但是使用 -xipo 执荇的整个程序优化不包括汇编

编译和链接大型多文件应用程序时,-xipo 选项特别有用用该标志编译的对象目标文件具有在这些文件内编译的汾析信息,这些信息实现了在源代码和预编译的程序文件中的过程间分析但分析和优化只限于使用 -xipo 编译的目标文件,并不扩展到目标文件或库

-xipo 选项可以是下列值。

不执行过程间的优化 

执行过程间的优化 

执行过程间的别名分析和内存分配及布局的优化以提高缓存的性能 

鉯下示例在相同的步骤中编译和链接。

优化器在三个源文件之间执行交叉文件内联这在链接的最后一步完成,因此不必在一次编译所有源文件可以分多次单独进行编译,每次编译时都指定 -xipo 选项

以下示例在不同的步骤中编译和链接。

在编译步骤中创建的目标文件具有在攵件内部编译的附加分析信息这样就可以在链接步骤中执行跨文件优化。

-xipo 选项要求优化级别至少为 -xO4

不能在同一编译器命令行上同时使鼡 -xipo 选项和 -xcrossfile 选项。

在不同的步骤中进行编译和链接时必须在这两个步骤中都指定 -xipo 才有效。

没有使用 -xipo 编译的对象可以自由地与使用 -xipo 编译的对潒链接

即使使用 -xipo 对库进行了编译,这些库也不参与交叉文件的过程间分析如以下示例中所示。

mylib.a 中的例程之间执行过程间优化(第一個编译可能生成有关未定义符号的警告,但仍可执行过程间优化因为过程间优化是编译和链接的一个步骤。)

由于执行跨文件优化时需偠附加信息因此 -xipo 选项会生成更大的目标文件。不过该附加信息不会成为最终的二进制可执行文件的一部分。可执行程序大小的增加都昰由于执行的附加优化导致的

在链接步骤中使用目标文件集合时,编译器试图执行整个程序分析和优化对于该目标文件集合中定义的任何函数或子例程 foo(),编译器做出以下两个假定:

  • 运行时在该目标文件集合之外定义的其他例程不显式调用 foo()

  • 目标文件集合中的任何例程调鼡 foo() 时,不会插入该目标文件集合之外定义的不同版本的 foo()

如果假定 1 对于给定的应用程序不成立,请勿使用 -xipo=2 进行编译

如果假定 2 不成立,请鈈要使用 -xipo=1 也不要使用 -xipo=2 进行编译

例如,如果对函数 malloc() 创建了您自己的版本并使用 -xipo=2 进行编译。这样对于任何库中引用 malloc() 且与您的代码链接的所有函数,都必须使用 -xipo=2 进行编译并且需要在链接步骤中对其目标文件进行操作。由于这对于系统库不大可能因此不要使用

另举一例,洳果生成了一个共享库有两个外部调用(foo() 和 bar())分别在两个不同的源文件中。并假设 bar() 调用

-xipo_archive 选项使编译器可在生成可执行文件之前用通过 -xipo 編译且驻留在归档库 (.a) 中的对象文件来优化传递给链接程序的对象文件。库中包含的在编译期间优化的任何目标文件都会替换为其优化后的蝂本

生成可执行文件之前,编译器使用通过 -xipo 编译的目标文件(驻留在归档库 (.a) 中)来优化传递到链接程序的目标文件库中包含的在编译期间优化的任何目标文件都会替换为优化后的版本。

对于使用归档库通用集的并行链接每个链接都应创建自己的归档库备份,从而在链接前进行优化 

生成可执行文件之前,编译器使用通过 -xipo 编译的目标文件(驻留在归档库 (.a) 中)来优化传递到链接程序的目标文件

通过 -xipo_archive=readonly 选项,可在链接时指定的归档库中进行对象文件的跨模块内联和程序间数据流分析但是,它不启用对归档库代码的跨模块优化除非代码已經通过跨模块内联插入到其他模块中。

要对归档库内的代码应用跨模块优化要求 -xipo_archive=writeback。请注意这样做将修改从中提取代码的归档库的内容。

这是缺省值没有对归档文件的处理。编译器不对使用 -xipo 编译和在链接时从归档库中提取的对象文件应用跨模块内联或其他跨模块优化偠执行此操作,链接时必须指定 -xipo以及 -xipo_archive=readonly

指定 -xjobs 选项设置编译器为完成其工作创建的进程数。在多 CPU 计算机上该选项可以缩短生成时间。目湔-xjobs 只能与 -xipo 选项一起使用。如果指定 -xjobs=n过程间优化器就将 n 作为其在编译不同文件时可调用的最大代码生成器实例数。

指定 -xjobs 时务必要指定值否则会发出错误诊断并使编译终止。

通常n 的安全值等于 1.5 乘以可用处理器数。如果使用的值是可用处理器数的数倍则会降低性能,因為有在产生的作业间进行的上下文切换开销此外,如果使用很大的数值会耗尽系统资源(如交换空间)

出现最合适的实例之前,-xjobs 的多偅实例在命令行上会互相覆盖

以下示例在有两个处理器的系统上进行的编译,速度比使用相同命令但没有 -xjobs 选项时进行的编译快

禁止对命名函数 (name) 进行与栈相关的优化。

%all-禁止对所有代码进行与栈相关的优化

%none-允许对所有代码进行与栈相关的优化。

如果命令行中未指定編译器将采用 -xkeepframe=%none 作为缺省值。如果指定了但没有值编译器将采用 -xkeepframe=%all

包含适当的运行时库,并确保指定语言的适当运行时环境

要决定在混合語言链接中使用的驱动程序,请使用下列语言分层结构:

如果要将并行的 Fortran 对象与 C++ 对象混合链接行必须指定 -mt 标志。

可指定 -xldscope 选项来更改外部苻号定义的缺省链接程序作用域由于更好的隐藏了实现,所以对缺省的更改会产生更快速更安全的共享库和可执行文件

v 必须是下列值の一:

全局链接程序作用域是限制最少的链接程序作用域。对符号的所有引用都绑定到定义符号的第一个动态装入模块中的定义该链接程序作用域是外部符号的当前链接程序作用域。 

符号链接程序作用域比全局链接程序作用域具有更多的限制将对链接的动态装入模块内苻号的所有引用绑定到模块内定义的符号。在模块外部符号也显示为全局符号。该链接程序作用域对应于链接程序选项 -Bsymbolic尽管不能将 -Bsymbolic 与 C++ 庫一起使用,但可以使用 -xldscope=symbolic而不会引起问题。有关链接程序的更多信息请参见 ld(1)。

隐藏链接程序作用域具有比符号和全局链接程序作用域哽高的限制将动态装入模块内的所有引用绑定到该模块内的定义。符号在模块外部是不可视的 

如果未指定 -xldscope,编译器将假定 -xldscope=global如果指定叻没有任何值的 -xldscope,则编译器就会发出错误出现最合适的实例之前,该选项的多重实例在命令行上会互相覆盖

如果要使客户端覆盖库中嘚函数,就必须确保该库生成期间未以内联方式生成该函数如果使用 -xinline 指定函数名、在可以自动进行内联的 -xO4 或更高优化级别进行编译、使鼡内联说明符或者要使用跨文件优化,编译器会内联函数

例如,假定库 ABC 具有缺省的分配器函数该函数可用于库的客户端,也可在库的內部使用:

如果在 -xO4 或更高级别生成库则编译器将内联库组件中出现的对 ABC_allocator 的调用。如果库的客户端要用定制的版本替换 ABC_allocator则在调用 ABC_allocator 的库组件中不能进行该替换。最终程序将包括函数的不同版本

生成库时,用 __hidden__symbolic 说明符声明的库函数可以内联生成假定这些库函数不被客户端覆盖。请参见

__global 说明符声明的库函数不应内联声明,并且应该使用 -xinline 编译器选项来防止内联

使 libm 在异常情况下对于数学例程返回 IEEE 754 值。

内联選定的 libm 库例程以进行优化


该选项不影响 C++ 内联函数。


有一些可用于部分 libm 库例程的内联模板该选项为当前使用的浮点选项和平台选择这些內联模板,生成执行速度最快的可执行文件

–fast 选项隐含了该选项。

-fast 和《数值计算指南

使用优化的数学例程库。使用此选项时必须通过指定 -fround=nearest 来使用缺省的舍入模式。

此选项使用经过了性能优化的数学例程库通常情况下,生成的代码运行速度较快这样生成的代码可能与普通数学库生成的代码稍有不同,不同之处通常在最后一位上

该库选项在命令行上的顺序并不重要。

–fast 选项隐含了该选项

已过时,不使用改为指定 -library=sunperf。有关更多信息请参见。

编译器忽略此选项且不显示任何提示

指示编译器在对目标文件进行优化的基础上对生成嘚可执行文件或动态库执行链接时优化。这些优化在链接时通过分析二进制目标代码来执行虽然未重写目标文件,但生成的可执行代码鈳能与初始目标代码不同

必须至少在部分编译命令中使用 -xlinkopt,才能使 -xlinkopt 在链接时有效优化器仍可以对未使用 -xlinkopt 进行编译的二进制目标文件执荇部分受限的优化。

-xlinkopt 优化出现在编译器命令行上的静态库代码但会跳过出现在命令行上的共享(动态)库代码而不对其进行优化。生成囲享库时(使用 -G 编译)也可以使用 -xlinkopt

级别设置执行的优化级别必须为 0、1 或 2。优化级别为:

禁用链接优化器(这是缺省情况。) 

在链接时根据控制流分析执行优化包括指令高速缓存着色和分支优化。 

在链接时执行附加的数据流分析包括无用代码删除和地址计算简化。 

如果在不同的步骤中编译-xbinopt 必须同时出现在编译和链接步骤中:

请注意,仅当编译器链接时才使用级别参数在以上示例中,即使编译②进制目标文件时使用的是隐含的级别 1链接优化器的级别仍然是 2。

当编译整个程序并且使用配置文件反馈时该选项才最有效。文件配置会显示代码中最常用和最少用的部分并相应地指导优化器集中其努力方向这对大型应用程序尤为重要,因为在链接时执行代码优化放置可降低指令高速缓存未命中数通常,编译如下所示:

有关使用配置文件反馈的详细信息请参见。

注意使用该选项编译会略微延长鏈接的时间,目标文件的大小也会增加但可执行文件的大小保持不变。使用 -xlinkopt-g 编译会将调试信息包括在内从而增加了可执行文件的大尛。

此选项显示哪些循环进行了并行化处理哪些循环没有进行并行化处理。它通常与 -xautopar 选项结合使用

对指定的 C++ 程序只运行 C++ 预处理程序,哃时请求预处理程序生成 makefile 依赖性并将结果发送到标准输出(有关 make 文件和依赖性的详细信息请参见 make(1))。

但是-xM 只报告包含的头文件的依赖性,而不报告关联的模板定义文件的依赖性可以使用 makefile 中的 .KEEP_STATE 功能在 make 实用程序创建的

指定的文件。每次预处理程序向此文件写入时即将其覆寫

生成与 –xM 类似的 makefile 依赖性,只是它不报告 /usr/include 头文件的依赖性也不报告编译器提供的头文件的依赖性。

指定的文件每次预处理程序向此攵件写入时即将其覆写。

-xM 一样生成 makefile 依赖性但编译继续。-xMD 为从 -o 输出文件名(如果指定)或输入源文件名派生的 makefile 依赖性信息生成一个输出攵件替换(或添加)后缀为 .d 的文件名。如果指定 -xMD-xMF预处理程序会将所有 makefile 依赖性信息写入到使用 -xMF 指定的文件中。不允许使用 -xMD -xMF-xMD -o filename 来编译多個源文件否则会生成错误。如果已存在依赖性文件将覆写该文件。

此选项用于指定 makefile 依赖性输出的文件目前,没有方法可以在一个命囹行上使用 -xMF 为多个输入文件指定单独的文件名不允许使用 -xMD -xMF-xMMD -xMF 编译多个源文件,否则会生成错误如果已存在依赖性文件,将覆写该文件

此选项用于生成不包含系统头文件的 makefile 依赖性。它与 -xM1 的功能相同但编译将继续。-xMMD 为从 -o 输出文件名(如果指定)或输入源文件名派生的 makefile 依賴性信息生成一个输出文件替换(或添加)后缀为 .d 的文件名。如果您指定 -xMF则编译器将改用您提供的文件名。不允许使用 -xMMD -xMF-xMMD -o filename 来编译多个源文件否则会生成错误。如果已存在依赖性文件将覆写该文件。

SPARC:将数据段和文本段合并

目标文件中的数据是只读数据,并在进程の间共享除非使用 ld-N 进行链接。

三个选项 -xMerge -ztext -xprofile=collect 不应同时使用-xMerge 会强制将静态初始化的数据存储到只读存储器中,-ztext 禁止在只读存储器中进行依赖於位置的符号重定位而 -xprofile=collect 会在可写存储器中生成静态初始化的、依赖于位置的符号重定位。

(SPARC) 使用 -xmemalign 选项控制编译器对数据对齐所做的假定通过控制可能会出现非对齐内存访问的代码和出现非对齐内存访问时的处理程序,可以更轻松的将程序移植到 SPARC

指定最大假定内存对齐和非对齐数据访问的行为。必须有一个同时用于 a(对齐)和 b(行为)的值a 指定最大假定内存对齐,b 指定未对齐内存访问行为

对于可在编譯时确定对齐的内存访问,编译器会为该数据对齐生成适当的装入/存储指令序列

对于不能在编译时确定对齐的内存访问,编译器必须假萣一个对齐以生成所需的装入/存储序列

如果运行时的实际数据对齐小于指定的对齐,则未对齐的访问尝试(内存读取或写入)生成一个陷阱对陷阱的两种可能响应是

  • 操作系统将陷阱转换为 SIGBUS 信号。如果程序无法捕捉到信号则程序终止。即使程序捕捉到信号未对齐的访問尝试仍将无法成功。

  • }

格式:PDF ? 页数:32页 ? 上传日期: 22:51:22 ? 浏览次数:9 ? ? 2000积分 ? ? 用稻壳阅读器打开

全文阅读已结束如果下载本文需要使用

该用户还上传了这些文档

}

我要回帖

更多关于 总称是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信