Как выполнить команду «Сборка груза» функционально, используя флаг функций?

#rust #rust-cargo

#Ржавчина #rust-cargo

Вопрос:

У меня есть похожая структура в моем проекте. Я хочу построить проект функционально. example1/main и example1/test это две особенности этого проекта. Я не могу изменить структуру.

 example
 ----example1
¦           -----main
¦                ¦   Cargo.toml
¦                ¦   
¦                 ---src
¦                ¦ 
¦           -----test
¦                ¦   Cargo.toml
¦                ¦   
¦                 ---src
¦
¦   Cargo.toml
 

Основной манифест./Cargo.toml:

 [profile.release]
panic = 'unwind'

[workspace]
members = [
    'example1/main',
    'example1/test',
]


 

Манифест рабочей области ./example1/main/Cargo.toml:

 [package]
name = 'main'
version = '2.0.0'
 

Когда я выполняю cargo build --features main или cargo build --features test , я получаю сообщение об ошибке ниже

 error: --features is not allowed in the root of a virtual workspace
note: while this was previously accepted, it didn't actually do anything
 

Может кто-нибудь, пожалуйста, помочь мне исправить это? Пожалуйста, дайте мне знать, какую конфигурацию мне не хватает в корневом файле cargo.toml.

Комментарии:

1. вместо того, чтобы использовать --feature which для функций cargo, попробуйте использовать -p main . doc.rust-lang.org/book/ch14-03-cargo-workspaces.html

2. --feature нужно ли указывать, с какими функциями создавать проект, а не с каким проектом на самом деле строить. Вместо этого вы можете использовать -p флаг, как рекомендует Prime_Aqasix, или cd в соответствующий основной / тестовый каталог и просто запустить cargo build для сборки проекта в текущем рабочем каталоге

3. @Prime_Aqasix Я только что обновил свой вопрос. main и test — две особенности этого проекта.

4. @Sonu когда вы говорите «функции», вы имеете в виду в отношении Rust или в общем смысле? Потому что структура вашего проекта показывает, что это два разных ящика.

5. @vallentin это два разных ящика.