#![cfg(feature = "const_mut_refs")] //currently breaking my main function
fn main() {
println!("Hello, world!");
}
В настоящее время, когда у меня есть этот флаг компилятора на моем ночном компиляторе, мою основную функцию невозможно найти. Это дает мне ошибку:
«main
функция не найдена в ящике insert_name_here
рассмотрите возможность добавления функции main
в src/main.rs
"
Я не знаю, кому сообщить об этой ошибке, но знаю, что это ночная функция, поэтому решил каким-то образом проинформировать сообщество. Я пытался создать наименьшую воспроизводимую версию, чтобы другие могли рассказать мне о своем опыте или о том, можно ли это исправить.
Я бы определил это как ошибку компилятора, но не в традиционном смысле, потому что ошибку совершает именно компилятор.
Когда вы используете cfg вот так, он применяется к следующему элементу или, в вашем случае, к самому модулю !
. Вы сообщаете компилятору, что модуль (и, следовательно, основной) должен существовать только в том случае, если функция «const_mut_refs» ВАШЕГО ящика активирована.
Правильный синтаксис для использования экспериментальной функции Rust: #![feature(const_mut_refs)]
подробнее.
#![cfg(feature = "const_mut_refs")]
Это не включает нестабильную функцию компилятора const_mut_refs.
#[cfg]
используется для условной компиляции, что означает, что он отключит код, где условие не выполняется.!
означает применение атрибута к текущему модулю (в данном случае к корню крейта).feature = "const_mut_refs"
попытается найти функцию загрузки, а не функцию компилятора.Таким образом, вы фактически отключаете весь свой ящик, когда функция груза "const_mut_refs"
не включена и, следовательно, main()
не найдена.
Что вы на самом деле хотите:
#![feature(const_mut_refs)]