0

运行 collect 命令时出现以下错误

$ collect -c on sample bit(警告):无法在 /home/user1/ANALYSIS/SAMPLE_PROGRAM/sample 上操作。请在装有 Solaris10 update 5 或更高版本(或 OpenSolaris 版本 snv_52 或更高版本)的机器上重新编译它。如果使用较旧的操作系统,请尝试 -xbinopt=prepare(仅限 SPARC)。

示例程序是使用以下 g++ 标志构建的

g++ -c -Wall -g3 -m64 -pthread -O2 -DSOLARIS -DSS_64BIT_SERVER

示例程序很简单,只包含以下代码 while (true) { sleep (10); }

我只是想看看 c++ 代码编译的代码是否可以与 collect 命令一起使用。因为我们有一个巨大的 g++ 编译二进制文件,我们不想用 Solaris Studio C++ 编译器再次编译它

4

1 回答 1

1

我不这么认为。Studio 选项-xbinopt=prepare包括用于二进制文件的特殊代码以使用性能计数器。我已经很多年没有使用它了……据我所知,我-xbinopt=prepare使用二进制文件将性能数据写入 CWD (或其他参数指定的目录)中的文件,然后你可以将这些数据与-xbinopt=use. 规则首先使用prepare编译,然后运行以收集数据,然后使用收集的性能数据重新编译以获得更好的优化代码。类似于 JIT 编译器,但在编译时。

于 2014-01-14T21:53:57.067 回答