[英]Keep exported symbol in shared library
我一定缺少一些瑣碎的東西。 我想聲明一個要導出的類-只是模塊中幾個類中的一個。 在同一庫中的任何地方都沒有使用它,因此鏈接器將其刪除。 提供所有hidden
可見性和導出的default
並不會使鏈接程序混亂。
如果我告訴鏈接器--whole-archive
,它將抱怨完全不相關的函數的多個定義。 此外,我不想導出所有內容-僅導出一個類。
#pragma GCC visibility push(default)
class C { public: C() { } };
#pragma GCC visiblity pop
// with this line the class is exported
// without it — it does not
delete new C();
// the line does nothing useful,
// just references the constructor
事實證明,盡管可以指示CUDA的nvcc編譯器使用gcc進行編譯,但它仍會自行鏈接。 而且它與gcc的方式不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.