#windows-msvc #msvc #link #compile-time #build-script #windows

no-std build link_args

允许在编译时设置链接器参数,而不使用构建脚本。目前仅支持Windows MSVC工具链。

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构建工具

Download history 30/week @ 2024-03-11 80/week @ 2024-03-18 30/week @ 2024-03-25 48/week @ 2024-04-01 16/week @ 2024-04-08 88/week @ 2024-04-15 25/week @ 2024-04-22 43/week @ 2024-04-29 29/week @ 2024-05-06 44/week @ 2024-05-13 73/week @ 2024-05-20 14/week @ 2024-05-27 27/week @ 2024-06-03 36/week @ 2024-06-10 62/week @ 2024-06-17 13/week @ 2024-06-24

139 每月下载次数
用于 2 crates

MIT OR Apache-2.0 OR Zlib

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.rslib.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>

无运行时依赖