๊ธฐ๋ณธ ๊ธฐ๋ฅ X
๊ฐ ์๋ crate A
์ ์์กดํ๋ MyCrate
์์ ์์
ํ๊ณ ์๋ค๊ณ ์์ํด ๋ณด์ญ์์ค.
--no-default-features
MyCrate
๋ฅผ ์ปดํ์ผํ๋ฉด $ X
๊ธฐ๋ฅ์ด ํ์ฑํ๋ ์ํ๋ก crate A
๊ฐ ๋น๋๋ฉ๋๋ค.
์ด๊ฒ์ ์ฑ๊ฐ์ ์ผ์ด์ง๋ง ๋ค์๊ณผ ๊ฐ์ด Cargo.toml์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์ ์์ต๋๋ค.
[dependencies.A]
version = "*"
default-features = false
๊ทธ๋ฌ๋ A
์ด ์์ฒด ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ด ์๋ ๋ค๋ฅธ B
์์์ ์์กดํ๋ ๊ฒฝ์ฐ ์ด ์๋ฃจ์
์ด ์๋ํ์ง ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ B
์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํด ๋ณด์
๋๋ค. ์ฆ, ๊ฐ์ ์ข
์์ฑ์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ๋นํ์ฑํํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํด ๋ณด์
๋๋ค.
๋์ ํน๋ณํ ๋๊ธฐ ๋ถ์ฌ ์ฌ๋ก๋ libc๊ฐ ํ๋ฌผ์ ํตํด ์ฌ์ฉ๋ ๋ libstd์ ๋ถํ์ํ๊ฒ ์์กดํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ด Cargo๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ํฌ๋ ์ดํธ ์์ฒด์ ์ข ์์ฑ์์ ๊ธฐ๋ฅ์ ๋ค์ ๋ด๋ณด๋ผ ์ ์๋ ์ด์ ์ ๋๋ค. ์ข ์์ฑ์ ๊ณต๊ฐ ์ธํฐํ์ด์ค ๋์ ๋น๊ณต๊ฐ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ด ๋๋๋ก ์๋๋์์ผ๋ฉฐ ๊ธฐ๋ฅ์ ๋ด๋ณด๋ด๋ ค๋ฉด ๋ช ์์ ์ผ๋ก ์ ํํด์ผ ํฉ๋๋ค.
@alexcrichton :
๊ทธ๋ ๋ค๋ฉด ์ต์ข
์ฌ์ฉ์๊ฐ ์ผ๋ถ ์ค์ฒฉ ๊ธฐ๋ฅ์ ์ ํ ํด์ ํ ์ ์๋๋ก ๋ชจ๋ ์์์ [dependencies.*] default-features = false
๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๊น? ๋ค์ ๋๊ฐํด ๋ณด์
๋๋ค.
๋ค, ๊ทธ๋ฐ ์๋์
๋๋ค. default
๊ธฐ๋ฅ์ ๋ง๋๋ ๊ฒ์ ๊ฑฐ์ ํญ์ ์ผ์ ธ ์์์ ์๋ฏธํ๋ฏ๋ก ๋ฐ๋์ ๋ชจ๋ ์ ํ์ ๊ธฐ๋ฅ์ ์ํ ๊ฒ์ ์๋๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@alexcrichton :
๊ทธ๋ ๋ค๋ฉด ์ต์ข ์ฌ์ฉ์๊ฐ ์ผ๋ถ ์ค์ฒฉ ๊ธฐ๋ฅ์ ์ ํ ํด์ ํ ์ ์๋๋ก ๋ชจ๋ ์์์
[dependencies.*] default-features = false
๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๊น? ๋ค์ ๋๊ฐํด ๋ณด์ ๋๋ค.