Rust 为什么我的发布模式包含带有绝对路径名的字符串?

Rust 为什么我的发布模式包含带有绝对路径名的字符串?,rust,exe,compiler-optimization,rust-cargo,Rust,Exe,Compiler Optimization,Rust Cargo,我刚刚构建了我的第一个Rust hello world程序,随后是一个websocket客户端,使用以下工具编译: cargo build --release 使用十六进制编辑器在hello\u cargo\target\release内部搜索216 KB可执行文件,我看到: C:\\Users\\GirkovArpa\\.cargo\\registry\\src\\github.com-1ecd2293db9ea513\\embedded-websocket-0.3.0\\src\\lib.

我刚刚构建了我的第一个Rust hello world程序,随后是一个websocket客户端,使用以下工具编译:

cargo build --release
使用十六进制编辑器在
hello\u cargo\target\release
内部搜索
216 KB
可执行文件,我看到:

C:\\Users\\GirkovArpa\\.cargo\\registry\\src\\github.com-1ecd2293db9ea513\\embedded-websocket-0.3.0\\src\\lib.rs
还有几根像这样的弦。这是在运行
strip hello\u cargo.exe
之后


如何避免这种情况?

调试符号不是唯一的来源。粘贴的字符串很可能来自错误路径,其中包括它们作为回溯的一部分(想想
.unwrap()
)。事实上,任何一段代码(包括stdlib或依赖项)都可以调用,如果没有证明它是死的,字符串将包含在最终的可执行文件中。因此,如果您高度关注隐私,唯一可靠的方法是在虚拟机内部构建。您使用什么依赖关系?调试符号不是唯一的来源。粘贴的字符串很可能来自错误路径,其中包括它们作为回溯的一部分(想想
.unwrap()
)。事实上,任何一段代码(包括stdlib或依赖项)都可以调用,如果没有证明它是死的,字符串将包含在最终的可执行文件中。因此,如果隐私是您高度关注的问题,唯一可靠的方法是在虚拟机内部构建。您使用什么依赖关系?
C:\\Users\\GirkovArpa\\.cargo\\registry\\src\\github.com-1ecd2293db9ea513\\heapless-0.5.5\\src\\string.rs
C:\\Users\\GirkovArpa\\.cargo\\registry\\src\\github.com-1ecd2293db9ea513\\rand-0.7.3\\src\\rngs\\thread.rs
C:\\Users\\GirkovArpa\\Documents\\GitHub\\hello_cargo\\target\\release\\deps\\hello_cargo.pdb