2017-04-18 65 views
0

cmakeadd_library文件说,什么是cmake中的MODULE库类型?

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

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

回答

1

MODULE只打算使用dlopen加载。您不能target_link_libraries()MODULE库。

作为文档状态,MODULE关键字应用于强调某种库是某种插件,不应使用-l标志链接。

+0

哪个'ELF'标志与'MODULE'对应?换句话说,哪些动态库不能链接?就“制定”规则而言,它有多重要? –

+0

IIRC,它是'-rdynamic'。 – arrowd

+0

啊,我误解了你的问题。模块库没有任何符号导出。那为什么你不能链接到它。 – arrowd