gpt4 book ai didi

rust - Rust#![no_std] : unresolved external symbol _mainCRTStartup

转载 作者:行者123 更新时间:2023-12-03 11:48:25 28 4
gpt4 key购买 nike

我想启动一个Rust no_std项目,所以我只是创建了一个新的商品包,并在main.rs中写了以下几行:

#![feature(lang_items, start)]
#![no_std]

extern crate libc;

#[start]
fn main(_argc: isize, _argv: *const *const u8) -> isize{

1
}

#[panic_handler]
fn panic(_: &core::panic::PanicInfo) -> !{
loop{}
}
#[lang = "eh_personality"] extern fn eh_personality() {}
Cargo.toml文件如下所示:
[dependencies]
libc = "0.2.71"

[profile.dev]
panic = "abort"

[profile.release]
panic = "abort"
我运行了 cargo build并打印了链接器:
LINK : error LNK2001: unresolved external symbol _mainCRTStartup
该错误背后的原因可能是什么?

最佳答案

Windows上的默认构建目标使用mscv工具链,其中包括动态链接的libc。这是一个C运行时,尤其是包括一个未定义的main符号(假定由程序员定义),因此在链接阶段,链接器无法找到此丢失的符号。您需要在main.rs开头通过#![no_main]明确指定您不需要它。
我还建议您阅读A Freestanding Rust Binary,它会详细解释。

关于rust - Rust#![no_std] : unresolved external symbol _mainCRTStartup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62504132/

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