我正在使用 Meson 構建系統構建一個支持 32 位和 64 位的作業系統。我剛剛開始添加對 64 位的支持,但遇到了一個問題。當我使用 64 位 C 編譯器時,kernel和stage2都使用該編譯器進行編譯。問題是stage2檔案夾,必須用 32 位 C 編譯器編譯,而不是 64 位編譯器。有什么辦法可以在介子中實作這一點?我應該切換到 CMake 嗎?
uj5u.com熱心網友回復:
問題所在,stage2 檔案夾必須使用 32 位 C 編譯器而不是 64 位編譯器進行編譯。
這兩個構建系統都不允許您在單個構建中執行此操作...... CMake 和 Meson 都有一個根深蒂固的假設,即每種語言1都有一個編譯器。如果您需要使用多個編譯器,則需要將構建拆分為多個獨立的專案。如何編排構建它們取決于您……對于 CMake,我建議使用帶有. 對于介子,我不確定標準方法是什么。ExternalProject
1.從技術上講,Meson 也允許您定義主機/本機編譯器(用于編譯構建時工具),但它不適合這種情況,因為主機可能不是目標,您最終可能需要三個或更多正在使用的編譯器(例如用于 ARM)。
我應該切換到 CMake 嗎?
可能不會,因為你已經有了與 Meson 合作的東西。但是,如果您的構建規則變得足夠復雜,您可能會發現 CMake 撰寫函式和抽象的能力比負擔更大的好處。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/427883.html
