google-gflagsは、Googleが公開しているフラグの解析ツールだ。最近はGoogle-codesから、githubに移行して公開してある。
これを使いたくて、色々試したがかなりハマったので、やり方を書いておく。
google-gflagsのリポジトリのmasterを取ってくるよりも、リリースタグを取ってきた方が安全だということが分かった。
git checkout v2.1.2
安全なリリースファイルが必要であれば、以下からダウンロードしてくれば良い。
次に、gflagsのディレクトリの中でbuildディレクトリを作成して、ccmakeを実行するらしい。
(gflagsディレクトリの上) mkdir build cd build ccmake ..
まずは"c"を押して、Makeに必要なファイルを生成する。
最後に"g"を押すことで、生成したファイルを保存して終了する。
なんか色々ファイルができている。
さて、そのディレクトリでmakeを叩くと、ライブラリが生成されるようになっている。
/swimmer_riscv/vendor/gflags/build$ make Scanning dependencies of target gflags-static [ 16%] Building CXX object CMakeFiles/gflags-static.dir/src/gflags.cc.o [ 33%] Building CXX object CMakeFiles/gflags-static.dir/src/gflags_reporting.cc.o [ 50%] Building CXX object CMakeFiles/gflags-static.dir/src/gflags_completions.cc.o Linking CXX static library lib/libgflags.a [ 50%] Built target gflags-static Scanning dependencies of target gflags_nothreads-static [ 66%] Building CXX object CMakeFiles/gflags_nothreads-static.dir/src/gflags.cc.o [ 83%] Building CXX object CMakeFiles/gflags_nothreads-static.dir/src/gflags_reporting.cc.o [100%] Building CXX object CMakeFiles/gflags_nothreads-static.dir/src/gflags_completions.cc.o Linking CXX static library lib/libgflags_nothreads.a [100%] Built target gflags_nothreads-static masayuki@trilenx:~/work/swimmer_riscv/vendor/gflags-2.1.2/build$
生成されたファイルが以下だ。
gflags/build$ ls -1 CMakeCache.txt CMakeFiles Makefile cmake_install.cmake gflags-config-install.cmake gflags-config-version.cmake gflags-config.cmake gflags-export.cmake include lib
まあ必要なのはincludeとlibだけなんだけどね。
. ├── CMakeCache.txt ├── CMakeFiles │ ├── 2.8.12.2 │ ├── CMakeDirectoryInformation.cmake │ ├── CMakeError.log │ ├── CMakeOutput.log │ ├── CMakeRuleHashes.txt │ ├── CMakeTmp │ ├── CheckTypeSize │ ├── Export │ ├── Makefile.cmake │ ├── Makefile2 │ ├── TargetDirectories.txt │ ├── cmake.check_cache │ ├── gflags-static.dir │ ├── gflags.dir │ ├── gflags_nothreads-static.dir │ ├── gflags_nothreads.dir │ └── progress.marks ├── Makefile ├── cmake_install.cmake ├── gflags-config-install.cmake ├── gflags-config-version.cmake ├── gflags-config.cmake ├── gflags-export.cmake ├── include │ └── gflags └── lib ├── libgflags.a └── libgflags_nothreads.a