2016-06-23 5 views
0

Я хочу построить динамическую библиотеку ссылок (dll).
Мои Cargo.toml в настоящее время выглядит следующим образом:Строить только цель `lib`

[package] 
name = "sample" 
version = "0.1.0" 
authors = ["author"] 

[lib] 
name = "main" 
crate-type = ["dylib"] 

[dependencies] 

Я использую VS код с RustyCode плагин как мой IDE на окнах. Когда я запускаю команду сборки, она строится на sample.exe и main.dll.
Я знаю, что могу запустить cargo build --lib, чтобы создать только мою цель lib, но у меня нет доступа к этой команде внутри кода VS (afaik). Должен ли я указать, что я хочу построить цель lib в моем Cargo.toml файле, поэтому я могу использовать команду сборки кода VS, которая запускает cargo build/?

ответ

1

Cargo строит файлы, используя соглашение о конфигурации. Когда он находит main.rs, он создает исполняемый файл, и когда он встречает lib.rs, он рассчитывает построить библиотеку.

Вызов вашей библиотеки main удалось запутать Cargo. Единственное решение, которое мне удалось найти, - либо сменить имя вашего ящика с name = "main" на name = "foo" (а затем переименовать main.rs в foo.rs) или изменить его название на lib.rs, как и вы.

+0

Этот ответ более информативен, чем мой, спасибо :) –

0

Просто подумал: переименуйте src/main.rs в src/lib.rs, и он только строит цель lib!

 Смежные вопросы

  • Нет связанных вопросов^_^