我已經構建了一個ADA靜態庫,並通過提供'.a'和ALI文件來共享它。ADA靜態庫 - 兼容不同版本的編譯器
一切工作正常,而我使用相同的GNAT編譯器版本比用於建立靜態庫。
但是在另一個編譯器版本中,ALI文件被認爲無效(編譯器版本存儲在所有ALI文件中),編譯器需要源文件來重建ALI文件。
有沒有解決方案來避免這個問題?
更新2015年12月11日:我們做了一些測試(與俱備只ALI庫文件),但是我們仍然有以下錯誤:
error: "package1.adb" and "prog.adb" compiled with different GNAT versions
error: "prog.adb" must be recompiled ("system.ads" has been modified)
所以,我認爲我們必須對庫和程序使用相同的編譯器版本。
感謝您的回答。我已經在我的庫項目中使用了Externally_Built屬性。我會試着把ALI文件設置爲只讀。 – remy40
如果您正在使用庫項目,那麼您應該查看「獨立庫」,然後在gprbuild文檔中查看。在你的情況下,這些可能會更好。 – manuBriot
感謝您的幫助。我已更新了我的初始帖子。獨立庫對我們來說並不是真正的解決方案。 – remy40