簡體   English   中英

將導出的符號保留在共享庫中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM