我在使用Unity構建的大型C++項目上工作。對於那些不熟悉這種做法的人來說,Unity會將多個相關的C++實現文件包含到一個大的翻譯單元中,然後將其編譯爲一個。這樣可以節省重新編譯頭文件,縮短鏈接時間,通過將更多功能引入內部鏈接等方式來提高可執行文件的大小/性能。安全統一構建
但是,我剛剛發現了一個潛在的bug。一個實現文件使用的庫不包含關聯的頭文件,但它已編譯並運行。在對我的頭腦進行了一點點修改之後,我意識到它已被包含在我們的統一構建中的這個之前的實現文件中。這裏沒有造成任何傷害,但如果有人試圖獨立後重新使用該文件,可能會令人感到奇怪。
除了定期構建非Unity版本之外,是否有任何方法可以捕獲這些靜默依賴關係,並保持Unity構建的好處?