gpt4 book ai didi

c - Rust 和 C 与 Visual Studio 的兼容性

转载 作者:太空狗 更新时间:2023-10-29 15:38:09 26 4
gpt4 key购买 nike

是否可以创建一个用 rustc 编译的静态库并将其链接到用 MSVC 编译的可执行文件?

最佳答案

如果你只想使用 rustc 来生成静态库,你可以通过在你的 crate 的 lib.rs 文件中指定一些属性,并标记导出的函数来实现这样:

#![crate_type = "static_lib"]
#![crate_name = "mylib"]

use libc::c_int;

#[no_mangle]
pub extern fn my_exported_func(num: c_int) -> c_int {
num + 1
}

然后简单地调用 rustc lib.rs。这适用于 rustc 支持的所有平台。

在 C/C++ header 中,添加:

#pragma once

// only use extern block if the header is put inside a C++ CU
extern "C" {
int my_exported_func(int num);
}

并根据需要链接输出 .lib.a

对于 Cargo,您可以在 Cargo.toml 中指定箱子类型和名称。

来源:

关于c - Rust 和 C 与 Visual Studio 的兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31162973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com