簡體   English   中英

鏈接器剝離未使用的類

[英]Linker stripping unused classes

我正在IOS和Android下使用C ++進行跨平台項目,並且遇到以下情況:

我正在編寫一個用於直接從描述它們的xml文件中加載場景圖的庫。 該庫具有一個基礎樹節點類,該類實現了所有功能,以使該類可以通過其名稱構造。 然后,實現其他樹節點,所有樹節點均源自此基本節點類。 效果很好,但是有一個問題。 鏈接器“認為”我的某些類將不再使用,並將其從庫中刪除。 我現在有一個令人討厭的解決方法,有一個包含所有現有節點標頭的文件,並且在該文件中,正在創建和更改每個節點的一個實例,以指示編譯器/鏈接器確實在使用該類。

有人知道一個好的設計模式可用於自動生成所有類的所需實例嗎?

我試圖創建放置在類cpp文件中的宏,該宏創建給定類的靜態實例,但是鏈接器仍然檢測到這些靜態實例永遠不會被引用。

還是有一個鏈接器標志可用於告訴鏈接器不要剝離任何未使用的類? 如前所述:我正在使用Android(ndk 6.0)和IOS(xcode 4.2)

這個問題不會成為我項目的重中之重,但是在這里找到一個可以接受的解決方案真的很好。

由實現定義,是否在main的第一條語句之前完成了具有靜態存儲持續時間的非局部變量的動態初始化。 如果將初始化推遲到main的第一條語句之后的某個時間點,則它應發生在與要初始化的變量在同一轉換單元中定義的任何函數或變量的第一次odr使用(3.2)之前。

因此,沒有一種標准的方法來保證這些對象的構造,而是將它們全部列出在一個特定的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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