如果 appcert 检查的目标文件依赖于库,则必须在目标文件中记录这些依赖项。为此,编译代码时请确保使用编译器的 -l 转换参数。如果目标文件依赖于其他共享库,则运行 appcert 时必须能够通过 LD_LIBRARY_PATH 或 RPATH 访问这些库。
appcert 应用程序不能检查 64 位应用程序,除非计算机运行的是 64 位 Solaris 内核。由于 Solaris 未提供任何 64 位静态库,因此 appcert 不会对 64 位应用程序执行静态链接检查。
appcert 实用程序不能检查以下内容:
完全或部分静态链接的目标文件。完全静态链接的对象将被报告为不稳定。
没有执行权限集的可执行文件。appcert 实用程序会跳过此类可执行文件。没有执行权限集的共享对象按正常方式进行检查。
用户 ID 设置为 root 的目标文件。
非 ELF 的可执行文件,如 shell 脚本。
除 C 以外其他语言中的 Solaris 接口。代码无需为 C 语言,但是对 Solaris 库的调用必须使用 C 语言。