Rustでcargo buildするときにローカル環境の文字列を削減する

Rustで、cargo build --releaseするときに、ローカル環境のユーザー名を含む文字列をexeファイルに含めないようにする。

このissueを参考にして、設定を追加すればいい:

--remap-path-prefix has no effect · Issue #87805 · rust-lang/rust
I tried this code: Not applicable I expected to see this happen: --remap-path-prefix should rewrite paths to the new pre...

やること

プロジェクトのルートディレクトリに、.cargo/config.tomlを作成して、以下のような感じで設定を行う:

[build]
rustflags = ['--remap-path-prefix', 'C:\Users\<USERNAME>\=.\']

<USERNAME>をそのまま、ユーザー名にすればいい。

.cargo/config.tomlはプロジェクト固有なので、適宜作成する必要がある。 また、プロジェクトのロケーションによっては、C:\Users\<USERNAME>\に追記や変更が必要になることに注意が必要だ。

また、gitでは管理しづらいと思う。

チェック

WSL2なubuntuのbashからのチェックになるが、次のようなコマンドなどでチェックできる:

strings main.exe | grep <USERNAME> | head -n 10

なぞ

C:\Users\runneradmin\というユーザー名らしきものを含んだ文字列が埋め込まれたままになっているのは少し気になったが、気にしないことにする。 cargoのビルドプロセスの途中で生成されて埋め込まれているのだろう。

おわり

ローカル環境のパスの埋め込みはデフォルトでオフにしてほしいと思った。特に困る情報でもないが、少し気にしてしまう。

以上です。

タイトルとURLをコピーしました