FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

google-gflagsを試す(google-gflagsをクローンしてからビルドする)

google-gflagsは、Googleが公開しているフラグの解析ツールだ。最近はGoogle-codesから、githubに移行して公開してある。

github.com

これを使いたくて、色々試したがかなりハマったので、やり方を書いておく。

google-gflagsのリポジトリのmasterを取ってくるよりも、リリースタグを取ってきた方が安全だということが分かった。

git checkout v2.1.2

安全なリリースファイルが必要であれば、以下からダウンロードしてくれば良い。

github.com

次に、gflagsのディレクトリの中でbuildディレクトリを作成して、ccmakeを実行するらしい。

(gflagsディレクトリの上)
mkdir build
cd build
ccmake ..

まずは"c"を押して、Makeに必要なファイルを生成する。

f:id:msyksphinz:20150705020003j:plain

f:id:msyksphinz:20150705020009j:plain

最後に"g"を押すことで、生成したファイルを保存して終了する。

f:id:msyksphinz:20150705020103j:plain

なんか色々ファイルができている。

f:id:msyksphinz:20150705020109j:plain

さて、そのディレクトリで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