2017-04-18 63 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