前書き
C++の超初心者ですから、かなり間違ったことを書いているかもしれません
当方Windowsユーザーで、普段はPythonやRustを書いています。
こういう言語だと、外部ライブラリを導入するときはパッケージマネージャ(Pythonならpip、Rustならcargo)に頼るのですが、C++は標準としてはその類のツールが存在しないんですよね。
軽く調べたところ、そういうツールは使わないで、直接ダウンロードしてプロジェクトのディレクトリに置いておく(ヘッダファイルをinclude、so, dll等はlib といったディレクトリを作って置く)か、外部の好きなところに置いて、そのパスを書いた環境変数を用意してビルド時に指定するのが大抵のやり方らしいそうな(参考1, 参考2)
ということなので、実際にGithubにあるオープンソースプロジェクトのディレクトリ構造を見て回って調べてみた、という備忘録としての記事です
オープンソースプロジェクトから見る例
Raylib
- src/externalフォルダに置いている
Siv3d
- includeとlibに分け、libに外部dll、includeに自身のライブラリ、include/ThirdPartyに外部ライブラリを置いている
- 直接同梱したくないライブラリはDependenciesに置いている?
SFML
- extlibsに置いている