Когда я запускаю определенный флаг компилятора, компилятор Rust не может найти мой основной файл

#![cfg(feature = "const_mut_refs")] //currently breaking my main function

fn main() {
    println!("Hello, world!");
}

В настоящее время, когда у меня есть этот флаг компилятора на моем ночном компиляторе, мою основную функцию невозможно найти. Это дает мне ошибку: «main функция не найдена в ящике insert_name_here рассмотрите возможность добавления функции main в src/main.rs"

Я не знаю, кому сообщить об этой ошибке, но знаю, что это ночная функция, поэтому решил каким-то образом проинформировать сообщество. Я пытался создать наименьшую воспроизводимую версию, чтобы другие могли рассказать мне о своем опыте или о том, можно ли это исправить.

Я бы определил это как ошибку компилятора, но не в традиционном смысле, потому что ошибку совершает именно компилятор.

Почему Python в конце концов умрет
Почему Python в конце концов умрет
Последние 20 лет были действительно хорошими для Python. Он прошел путь от "просто языка сценариев" до основного языка, используемого для написания...
0
0
97
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Когда вы используете 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)]

Другие вопросы по теме