官术网_书友最值得收藏!

Package managers

"The key to efficient development is to make interesting new mistakes."                                                                                                                                                               

– Tom Love

A real-world software code base is often organized into multiple files and will have many dependencies, and that calls for a dedicated tool for managing them. Package managers are a class of command-line tools that help manage projects of a large size with multiple dependencies. If you come from a Node.js background, you must be familiar with npm/yarn or if you are from Go language, the go tool. They do all the heavy lifting of analyzing the project, downloading the correct versions of dependencies, checking for version conflicts, compiling and linking source files, and much more.

The problem with low-level languages like C/C++ is that they do not ship with a dedicated package manager by default. The C/C++ community have been using the GNU make tool for a long time, which is a language-agnostic build system and has arcane syntax, that puts off many developers. The problem with make is that it does not know what header files are included in your C/C++ sources, so they have to be manually given this information. It has no built-in support for downloading external dependencies, nor does it know about the platform you are running on. Fortunately, this is not the case with Rust as it ships with a dedicated package manager which has more context on the project being managed. What follows is a tour of Cargo, Rust's package manager, which makes it easy to build and maintain Rust projects. But first, we need to dig into Rust's module system a bit more.

主站蜘蛛池模板: 高唐县| 崇阳县| 增城市| 紫云| 年辖:市辖区| 南皮县| 丽江市| 信阳市| 垣曲县| 元阳县| 额济纳旗| 三台县| 陈巴尔虎旗| 长顺县| 车致| 义马市| 酒泉市| 兴城市| 德州市| 恩平市| 巫溪县| 当涂县| 万州区| 湛江市| 新密市| 威信县| 永州市| 新津县| 永兴县| 瑞安市| 阜平县| 克拉玛依市| 辽中县| 英吉沙县| 黔南| 忻城县| 隆德县| 广南县| 福鼎市| 南和县| 眉山市|