ํ์ฌ ๋ค์๊ณผ ๊ฐ์ Cargo.toml์ด ์๋ ๊ฒฝ์ฐ:
[package]
name = "some_package"
version = "0.0.0"
[[bin]]
name = "somePackage"
path = "src/main.rs"
Rustc๋ ๋ค์๊ณผ ๊ฐ์ด ๋ถํํฉ๋๋ค.
warning: crate `somePackage` should have a snake case name such as `some_package`
|
= note: #[warn(non_snake_case)] on by default
Rust ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ค ์ฝ๋์ ๋ํ ๊ณตํต ๋ช ๋ช ๊ท์น์ ์ ์ฉํ๊ธฐ ์ํด ์ด๊ฒ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํฌ๋ ์ดํธ์ ํฉ๋ฆฌ์ ์ธ ์ด์ ๋ฅผ ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ๋ก ์ด์ ์ด ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ด๋๋ฆฌ์๋ ์ด๊ฒ์ ์ ์ฉํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค(ํฌ๋ ์ดํธ ์ด๋ฆ์ camelCase๊ฐ ์๋๋ผ ๋ฐ์ด๋๋ฆฌ ์ด๋ฆ๋ง ์์).
$ rustc --version
rustc 1.22.0-nightly (05f8ddc46 2017-10-07)
๋๋ ์ค์ ๋ก ์ด ๋ฌธ์ ๋ฅผ ํ๊ณ ๋ค์๊ณ Rust ํ์ด ๋์ํ๋ค๋ฉด ๊ธฐ๊บผ์ด ๋ฐ์๋ค์ผ ๊ฒ์ ๋๋ค.
ํ์ฌ ๋ฐ์ด๋๋ฆฌ ๋น๋๋ [[bin]]::name
๋ฅผ --crate-name
์ธ์๋ก ์ ๋ฌํฉ๋๋ค. ๋๋ ์ด๊ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์๊ฐํด ๋ณด์๋ค.
--bin-name
ํ๋๊ทธ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ --crate-name
์
๋๋ค. ์ด๋ฅผ ์ํด์๋ ํ๋ฌผ๊ณผ์ ์กฐ์ ์ด ํ์ํฉ๋๋ค.๊ฐ์ธ์ ์ผ๋ก 2๋ฅผ ์ ํธํฉ๋๋ค.
์ ์ฑ ์ ์คํ ํ์ผ๊ณผ cdylib์ ๋์ผํ๊ฒ ์ ์ฉ๋์ด์ผ ํฉ๋๋ค.
๋ํ ์์ ์ด๋ฆ์ ๋ํด์๋ง #[warn(non_snake_case)]
๋ฅผ ๋ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์
๋๋ค. ์ต์์ ์์ค์์ #![allow(non_snake_case)]
๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฒด ํฌ๋ ์ดํธ์ ๋ํ ๋ณดํธ๋ผ๊ธฐ๊ฐ ๋นํ์ฑํ๋ฉ๋๋ค.
์ ์ฑ ์ ์คํ ํ์ผ๊ณผ cdylib์ ๋์ผํ๊ฒ ์ ์ฉ๋์ด์ผ ํฉ๋๋ค.
๋ํ ์์ ์ด๋ฆ์ ๋ํด์๋ง
#[warn(non_snake_case)]
๋ฅผ ๋ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ์ต์์ ์์ค์์#![allow(non_snake_case)]
๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฒด ํฌ๋ ์ดํธ์ ๋ํ ๋ณดํธ๋ผ๊ธฐ๊ฐ ๋นํ์ฑํ๋ฉ๋๋ค.
๋์ํฉ๋๋ค. ํ๋ฌผ์ ๋ง๋๋ ๋์ ํฌ๋ ์ดํธ ์ด๋ฆ์ ๋ํ ์ด ๊ฒฝ๊ณ ๋ฅผ ๋นํ์ฑํํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ ์ฑ ์ ์คํ ํ์ผ๊ณผ cdylib์ ๋์ผํ๊ฒ ์ ์ฉ๋์ด์ผ ํฉ๋๋ค.
๋ํ ์์ ์ด๋ฆ์ ๋ํด์๋ง
#[warn(non_snake_case)]
๋ฅผ ๋ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ์ต์์ ์์ค์์#![allow(non_snake_case)]
๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฒด ํฌ๋ ์ดํธ์ ๋ํ ๋ณดํธ๋ผ๊ธฐ๊ฐ ๋นํ์ฑํ๋ฉ๋๋ค.