Cargo.toml刪除哈希擴展命名
[lib]
name = "faceblaster-engine"
crate_type = ["dylib"]
每當我執行我的cargo build
dylib被命名爲:
libfaceblaster-engine-f09635dc7c9bd155.so
。
無論如何要添加一些東西到.toml
文件,以消除放在末尾的散列?
在此先感謝您的幫助!
Cargo.toml刪除哈希擴展命名
[lib]
name = "faceblaster-engine"
crate_type = ["dylib"]
每當我執行我的cargo build
dylib被命名爲:
libfaceblaster-engine-f09635dc7c9bd155.so
。
無論如何要添加一些東西到.toml
文件,以消除放在末尾的散列?
在此先感謝您的幫助!
這個散列是一堆元數據的結果,其中IIRC包括用於製作它的Rust編譯器的版本。因爲Rust沒有定義的ABI,所以你只能使用這個庫和編譯器的完全相同的SHA來完成它。擦除這些數據將會消除您知道您是否可以成功使用它的能力。
除非編譯器首先檢查名稱,我認爲有沒有辦法告訴你,直到你得到鏈接器錯誤? 'rustc --version'在這個散列附近沒有顯示任何東西?在那個時候,除非在鏈接之前有一種說明方式,否則它在名稱中似乎沒有用處。我將它與C++ shim鏈接起來,所以我有C ABI公開使用核心入口函數... – nathansizemore
它不僅僅是版本,還有其他信息。 –
你爲什麼要刪除散列? –
@ChrisMorgan我想只是爲了與我的其餘libs目錄的一致性。如果由於任何原因,它會發生變化,我真的很討厭通過並調整任何需要散列更改的東西,但不知道會導致散列更改的是什麼。 – nathansizemore
如果只有一個構建步驟(某處)執行'cp target/release/mylib - *。so libs/mylib.so',怎麼辦? – Shepmaster