cmake 中的 MODULE 库类型是什么?

Hol*_*ock 6 cmake shared-libraries dlopen

cmake add_library文档说,

共享库动态链接并在运行时加载。MODULE 库是未链接到其他目标但可以在运行时使用类似 dlopen 的功能动态加载的插件。

实际上,我可以看到SHAREDMODULE类型目标.so在 Linux 上生成动态库。.so库是动态链接的,在运行时加载并使用dlopen(). 这两种类型的目标有何不同?

arr*_*owd 5

这些MODULE旨在dlopen仅使用加载。你不能target_link_libraries()MODULE图书馆。

正如文档所述,MODULE关键字应用于强调库是某种插件,不应使用-l标志链接。

  • 啊,我误读了你的问题。模块库没有导出任何符号。这就是为什么你无法链接到它。 (4认同)
  • “MODULE”对应哪个“ELF”标志?也就是说,哪些动态库是不能链接的?就“make”规则而言,它有何重要意义? (2认同)