Using environment variable will have following shortcomings: - A rebuild won't be triggered when set an environment variable; - If some project always prefer linking statically, there is no clean way to build such a binary. Features guard can solve both perfectly, and also a *rusty* way.