-G : 生成动态共享库而不是可执行文件
在有了这个选项的时候,必须指定链接时需要的库,编译器不会链接任何缺省的库
(gcc下面对应的选项是-shared)
-g :指示编译器和链接程序准备程序以进行性能分析(以及调试)。
-I : 指定头文件搜索路径
-i : 通知链接程序ld忽略任何LD_LIBRARY_PATH设置
-instances=global :将全部所需的实例放置到当前目标文件中并赋予全局链接。
-KPIC/-Kpic :使用与位置无关的代码进行编译。
生成共享库时使用该选项编译源文件。对全局数据的每个引用都生成为全局偏移表中
指针的非关联化。每个函数调用都通过过程链接表在pc相对地址模式中生成。
这个选项我怀疑不用的话还能算是动态链接库吗?
(gcc下面对应的选项是-fPIC)
-L : 查找共享对象的路径
-l : 指定动态链接的共享对象
警告
为了确保正确的库链接顺序,必须使用-mt(而不是-lthread)与libthread链接。
-misalign :SPARC:允许内存中包含未对齐数据,否则会生成错误。如以下代码所示:
char b[100];
int f(int * ar) {
return *(int *) (b +2) + *ar;
}
该选项通知编译器程序中的某些数据未正确对齐。因此,非常保守的装入和存储必须
用于会不对齐的任何数据,即每次一个字节。使用该选项会显著降低运行时性能。性
能降低的程度与应用程序有关。
–mt
编译和链接多线程代码。
该选项将-D_REENTRANT传递给预处理程序,并将-lthread以正确的顺序传递给ld。
如果应用程序或库是多线程的,则必须使用-mt选项。
为了确保正确的库链接顺序,必须使用该选项而不是-lthread来与libthread链接。
如果使用的是POSIX线程,则必须使用-mt -lpthread选项来链接。由于对于多线程应
用程序,libC(兼容模式)和libCrun(标准模式)需要libthread,因此必须使用-mt
选项。
如果在不同的步骤进行编译和链接并且使用-mt编译,则可能会得到意外的结果。如
果使用-mt编译一个转换单元,则应使用-mt编译该程序的所有单元。
–S
编译并仅生成汇编代码。
该选项使CC驱动程序编译程序并输出汇编源文件,但不汇编程序。汇编源文件名称的
后缀为.s。
–verbose=v[ ,v…]
控制编译器详细程度。
值
v必须是下列值之一。
表A–22 -verbose值
值含义
[no%]diags [不]为每个编译传递打印命令行。
[no%]template [不]打开模板实例verbose模式(有时称为“检验”模
式)。verbose模式显示编译过程中出现的每个实例阶段。
[no%]version [不]指示CC驱动程序打印所调用程序的名称和版本号。
%all 调用以上所有内容。
%none -verbose=%none与
-verbose=no%template,no%diags,no%version相同。
缺省值
如果未指定–verbose,则假定–verbose=%none。