C++ 初学者です。
自作ライブラリをGithubに保存して、Python(pip)では以下のコマンドに対応する方法でインストールしたいのですが、
どの様な方法(パッケージマネージャの選定も含めて)を取るのが一般的なのでしょうか?
$ pip install git+<レポジトリのURL>
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答2件
0
ベストアンサー
C++ではそもそもビルド手順が統一されていなくて(C++標準化委員会に提案は出ている)、雑多なビルド手順(msbuild, GNU Make, etc)を吐き出すツールとしてCMakeがデファクトスタンダード化しつつあります。ところがCMakeの呼び出し方もCMakeスクリプトの書き方に依存するので統一的ではありません。
vcpkgはパッケージマネージャですが、バイナリは配布してなくてあくまでCMakeを呼び出してビルドしていい感じにする作業をコマンド一つでやってくれる&依存ライブラリもビルドしてくれるというものになります。
Conanはなんかバイナリ配ってるぽいですね、使ったことないので知らんけど。
https://qiita.com/kai_kou/items/4dbe5b920a8598891ec7
でのやり取りでの感じではConanのCMakeの使い方はなんか汚いなって感じがしています。ライブラリ側の責任範疇のことをパッケージマネージャが面倒見るってどうなんよという。
vcpkgにしてもconanにしてもWindowsだとVisual Studioのことしか概ね考慮してない感じです。
じゃあmingwどうするんだよって話ですが、もっとも有名なmingwを導入する方法としてmsys2を利用する方法があるのですが、これはArch Linuxとおなじくpacmanをパッケージマネージャに採用しているので、PKGBUILDを書いておくのも一つの手段だったりします。ついでに
https://github.com/Alexpux/MINGW-packages/
に投げておくとAlexpux氏の気が向けば採用されてpacmanコマンドでバイナリが拾えるようになります。
結論としては、C++でパッケージマネージャとか未来過ぎて当分安定しないでしょうから
- ヘッダーオンリーライブラリにする: どうせtemplate多用するとそれしかなくなるのであり、git submoduleで引っ張るだけで使えるし
- CMakeでビルドできるようにしておく: 今更CMakeに依存しない世界がC++に来るとしたらC++標準化委員会がなにかするくらいしかないと思うので、とりあえずCMakeを書くのは大事でしょう。依存ライブラリがある場合は入手法をきちんとドキュメントを書くことですかね。あと自身がライブラリならxxx-config.cmake(xxxはライブラリ名)を自動生成するようにCMakeを書きましょう。
追記
Boostは頭のおかしい頭がbooooooooooost!したビルド手順を強制していて本当にどうかしているので真似するべきではないですしというかあの頭のおかしさ頭がbooooooooooost!した感じは真似できるものではありません。boostは各モジュールが複雑怪奇に密に依存しあっているのでああでもしないとビルドできないんでしょうが、基本的に悪い見本です。
投稿2019/02/22 15:52
編集2019/02/22 16:10総合スコア5852
0
投稿2019/02/22 14:10
編集2019/02/22 14:33総合スコア6500
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/23 16:43