5个不稳定版本
0.6.0 | 2021年3月29日 |
---|---|
0.5.1 | 2021年3月27日 |
0.5.0 | 2021年3月27日 |
0.4.1 | 2021年3月24日 |
0.4.0 | 2021年3月24日 |
#427 在 构建工具
139 每月下载次数
用于 2 crates
22KB
331 行
允许在编译时设置链接器参数,而不使用构建脚本。目前仅支持Windows MSVC工具链。
最小Rust版本:1.51
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
link_args = "0.6"
示例
设置堆栈大小
// Reserve 8 MiB for the stack.
link_args::windows_msvc::stack_size!(0x800000);
添加库
link_args::windows_msvc::default_lib!("kernel32.lib");
lib.rs
:
允许在编译时设置链接器参数,而不使用构建脚本。目前仅支持Windows MSVC工具链。
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
link_args = "0.6"
示例
将这些示例放在您的 main.rs
或 lib.rs
根目录下。
设置堆栈大小
为堆栈预留8 MiB(8,388,608字节)的虚拟内存。这应该只用于生成.exe
或.dll
二进制的crate。
link_args::windows::stack_size!(0x800000);
添加默认库
将"kernel32.lib"添加到搜索符号的库中。
link_args::windows::default_lib!("kernel32.lib");
使用windows!
宏
windows!
宏允许您一次设置多个参数。
link_args::windows! {
stack_size(0x800000);
default_lib("kernel32.lib");
}
如果您使用不安全的链接器参数,则必须将整个块标记为unsafe
。
// Only set these in release mode.
#[cfg(not(debug_assertions))]
link_args::windows! {
// Some of these linker args are unsafe so we have to use
// an `unsafe` block.
unsafe {
// Link the ucrt dynamically and vcruntime statically.
default_lib("ucrt", "libvcruntime", "libcmt");
// Disable the other C runtime libraries.
no_default_lib(
"libvcruntimed.lib", "vcruntime.lib", "vcruntimed.lib",
"libcmtd.lib", "msvcrt.lib", "msvcrtd.lib",
"libucrt.lib", "libucrtd.lib", "ucrtd.lib",
);
}
}
<style>#macros + table > tbody > tr:not(:first-child) { display: none !important; }</style>