【问题标题】:What is MODULE library type in cmake?cmake 中的 MODULE 库类型是什么?
【发布时间】:2017-09-13 21:03:57
【问题描述】:

cmakeadd_library 文档说,

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

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

【问题讨论】:

    标签: cmake shared-libraries dlopen


    【解决方案1】:

    MODULE 只能使用 dlopen 加载。你不能 target_link_libraries()MODULE 库。

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

    【讨论】:

    • MODULE 对应于哪个ELF 标志?也就是说,哪些动态库不能链接?就make 规则而言,这有什么关系?
    • IIRC,它是-rdynamic
    • 啊,我看错了你的问题。模块库没有导出任何符号。这就是为什么你不能链接到它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    • 2021-03-26
    • 2019-03-17
    • 2020-03-10
    • 2017-10-19
    • 2016-08-26
    相关资源
    最近更新 更多