用cargo build如何静态编译
时间: 2024-04-12 12:27:46 浏览: 228
要使用`cargo build`进行静态编译,需要在Cargo.toml文件中进行一些配置。请按照以下步骤:
1. 首先,在你的项目根目录下的Cargo.toml文件中,添加以下内容:
```toml
[profile.release]
panic = 'abort'
opt-level = 'z'
lto = true
codegen-units = 1
```
上述配置将启用一些优化选项,以减小生成的二进制文件的大小。
2. 接下来,在你的项目根目录下创建一个名为`.cargo`的文件夹,并在该文件夹中创建一个名为`config`的文件。
3. 在`.cargo/config`文件中添加以下内容:
```toml
[target.'cfg(target_os = "linux")']
rustflags = [
"-C", "link-arg=-s",
"-C", "link-arg=-Wl,--gc-sections",
]
[target.'cfg(target_os = "windows")']
rustflags = [
"-C", "link-arg=/ENTRY:mainCRTStartup",
"-C", "link-arg=/SUBSYSTEM:WINDOWS",
]
```
上述配置将为不同的操作系统设置不同的链接标志。
4. 最后,运行以下命令进行静态编译:
```shell
cargo build --release --target <target-triple>
```
其中,`<target-triple>`是目标平台的三元组(例如,x86_64-unknown-linux-gnu)。
完成上述步骤后,Cargo将在`target/<target-triple>/release`目录下生成静态编译的可执行文件。请注意,静态编译可能会导致一些依赖的功能不可用,因此请确保你的项目不会受到此限制。