C++ でライブラリを include したい場合は、基本的にダウンロードする必要があるのでしょうか？


基本的な質問となりまして恐れ入ります。普段 Python にてコーディングを行っている者です。

最近 C++ を使い始める必要が出てきて気になったのですが、いわゆる Python の pip のような Package Manager
は存在しないのでしょうか？

以下のページを見ると通常は使わないという返答がついているのですが、その場合、該当のライブラリファイルをダウンロードして、そのパスを指定して include
することになるのでしょうか (Python の import をイメージしています）

[Does C++ have a package manager like npm, pip, gem,
etc?](https://stackoverflow.com/questions/27866965/does-c-have-a-package-
manager-like-npm-pip-gem-etc)

恐れ入りますが、一般的な作法について教えていただけますと幸いです。  
よろしくお願いします。




私の知る限り、世間一般で **広く** 使われているとまで言えるような C++ 向けパッケージマネジャーはありません
(2018年6月現在)。少なくとも、Python における pip、Node.js における npm
のような、処理系と紐付いている公式パッケージマネジャーは存在しません。

C++ 向けで広く使われているライブラリは、単にインストールしたいだけなのであれば brew / apt / yum といった各種 OS
向けのパッケージマネジャーからインストールすれば充分であることが多いです (たとえば apt だと典型的には `何とかかんとか-dev`
という風な名前で配布されています)。

そうでなくても、ソースからビルドするなどして用意した後、(Linux / Unix であれば) `CPATH` や `LIBRARY_PATH`
という環境変数を[設定](https://stackoverflow.com/q/2497344/5989200)したり `-I` や `-L`
などのコンパイラオプションを使って探索パスを追加することで適宜 include できます。[pkg-
config](https://ja.wikipedia.org/wiki/Pkg-config)
を使ってこの操作を簡略化することもあります。また、元々デフォルトで探索パスに含まれているディレクトリがいくつかあるので、そこにインストールしてしまう方法もあります。

もちろん pip 同様の仕組みを C++ のために作ることは可能であり、[Conan](https://conan.io/) や
[Hunter](https://github.com/ruslo/hunter)
などいくつか[知られているようです](https://stackoverflow.com/a/36023212/5989200)
(私は使ったことがありませんが……)。




私の知る限り、世間一般で **広く** 使われているとまで言えるような C++ 向けパッケージマネジャーはありません
(2018年6月現在)。少なくとも、Python における pip、Node.js における npm
のような、処理系と紐付いている公式パッケージマネジャーは存在しません。

C++ 向けで広く使われているライブラリは、単にインストールしたいだけなのであれば brew / apt / yum といった各種 OS
向けのパッケージマネジャーからインストールすれば充分であることが多いです (たとえば apt だと典型的には `何とかかんとか-dev`
という風な名前で配布されています)。

そうでなくても、ソースからビルドするなどして用意した後、(Linux / Unix であれば) `CPATH` や `LIBRARY_PATH`
という環境変数を[設定](https://stackoverflow.com/q/2497344/5989200)したり `-I` や `-L`
などのコンパイラオプションを使って探索パスを追加することで適宜 include できます。[pkg-
config](https://ja.wikipedia.org/wiki/Pkg-config)
を使ってこの操作を簡略化することもあります。また、元々デフォルトで探索パスに含まれているディレクトリがいくつかあるので、そこにインストールしてしまう方法もあります。

もちろん pip 同様の仕組みを C++ のために作ることは可能であり、[Conan](https://conan.io/) や
[Hunter](https://github.com/ruslo/hunter)
などいくつか[知られているようです](https://stackoverflow.com/a/36023212/5989200)
(私は使ったことがありませんが……)。

