
255
4
장
의존성
버전인 경우에만 가능하다.
FFI
코드가 포함된 크레이트라면 문제가 발생할 수 있다.
●
의존성에 대한 셈버 호환 버전들(
"1"
또는 최소 버전을 포함한
"1.4.23"
)을 허용하는 것이 좋다.
●
Cargo.lock
파일을 사용해 빌드를 반복할 수 있게 만들되,
Cargo.lock
파일은 게시된 크레이트와 함
께 제공되지 않는다는 점에 주의한다.
●
의존성 문제를 찾거나 해결하는 데 다양한 도구(
cargo tree
,
cargo deny
,
cargo udep
등)를 활용
한다.
●
의존성을 가져오면 코드를 작성하는 시간과 노력을 줄일 수 있지만 그로 인한 비용은 감수해야 한다.
아이템
26
: 피처 팽창에 주의하라
러스트는 카고의 피처
feature
메커니즘을 통해 동일한 코드베이스에서 다양한 설정을 지원한다.
이 메커니즘은 조건부 컴파일을 위한 저수준 메커니즘을 토대로 구축되었다. 그런데 이런 피처
메커니즘에는 몇 가지 주의해야 할 미묘한 점이 있는데, 이번 아이템에서 자세히 알아보자.
조건부 컴파일
러스트는 조건부 컴파일
conditional
compilation
을 지원하며,
cfg
와
cfg
_
attr
속성으로 동작을 제어
한다.
C
/
C
++의 라인 기반 전처리기
line
-
based
preprocessor
와 달리 이 속성으로 함수, 라인, 블록 등 ...