如何在cmake中使用ctfconvert和ctfmerge

How to use ctfconvert and ctfmerge in cmake

我想在 CMake 中使用 ctfconvert 和 ctfmerge。我浏览了下面的几个链接。

https://java.net/projects/solaris/sources/on-src/content/usr/src/tools/scripts/nightly.sh

http://lethargy.org/~jesus/writes/mdb-ctf-dwarf-and-other-angelic-things/#.V-JUFPl97X4

链接中的源说明我们需要创建源的目标文件,然后对其应用 ctfmerge 和 ctfconvert。我开始知道有一个工具可以在 CMake 中创建 OBJECT 库。但我不知道如何在 OBJECT 库上应用这些 ctfconvert 和 ctfmerge,因为 $<"TARGET_OBJECTS:objlib> 只能用于 add_library() 或 add_executable().

如何解决这个问题?

我们需要在 Solaris 11 上安装 onbld 包或需要构建 Solaris 10 源代码以获得 onbld 包来安装 ctf 二进制文件。 然后最终需要在CMakeList.txt到运行中调用ctf二进制文件。我们需要从 ctfconvert 二进制创建一个 object 文件,然后在创建 executable/shared 库时需要使用 ctfmerge 将包含 ctf header 信息的对象文件合并到新创建的 executable/shared 图书馆。 如果我们需要创建静态库,我们只需要在文件上使用 ctfconvert 来创建包含 ctf header 的 object 文件,这会将这些文件放入存档中。当我们在创建 executable/shared 库时使用此静态库时,我们需要对静态库中的每个 object 文件使用 ctfmerge。