Sun Studio 12 Update 1:Fortran 用户指南

3.4.176 –ztext

在不重定位的情况下仅生成纯库。

-ztext 的一般用途是验证所生成的库是否为纯文本;指令都是与位置无关的代码。因此,它通常与 -G-pic 一起使用。

使用 -ztext 时,如果 ldtext 段中找到了不完整的重定位,则不会生成库。如果它在 data 段中找到了不完整的重定位,则通常会生成库;数据段是可写入的。

不使用 -ztext 时,ld 会生成库,与有无重定位无关。

如果您不知道目标文件是否是使用 -pic 生成的,则一种典型用法是利用源文件和目标文件生成库。

示例: 利用源文件和目标文件生成库:


demo% f95 -G -pic -ztext -o MyLib -hMyLib a.f b.f x.o y.o

另一种用法是确认代码是否与位置无关: 不带 -pic 进行编译,但确认是否为纯文本。

示例:确认是否为纯文本-即使不带 -pic 进行编辑:


demo% f95 -G -ztext -o MyLib -hMyLib a.f b.f x.o y.o

选项 -ztext-xprofile=collect 不应同时使用。-ztext 会阻止只读存储中与位置有关的符号重定位,而 -xprofile=collect 会在可写存储中生成静态初始化且与位置有关的符号重定位。

如果使用 -ztext 进行编译时 ld 不生成库,则可以在不使用 -ztext 的情况下重新编译,此时 ld 将生成库。使用 -ztext 生成失败意味着无法对库的一个或多个组件共享,不过,也许能共享某些其他组件。此时就产生了性能问题,这最好由您-程序员来解决。