GSLを使ったプログラムをCMakeでビルドする
- 2014.03.01
- Raspberry Pi
GSL(GNU Scientific Library)というのは、様々な計算が可能となるライブラリです。
多くの機能を持っていますが、個人的に良く使うのは行列の計算です。これだけでも、このライブラリをインストールする価値はあると思います。
以下、インストールからプログラムのビルドまでの手順。
インストール
sudo apt-get -yV install gsl-bin libgsl0-dbg libgsl0-dev libgsl0ldbl
以上のコマンドで、インストールは完了です。
プログラムのビルド
GSLのインストールは簡単ですが、GSLを使ったプログラムをcmakeでビルドしようとしても、そのままでは出来ません。そこで、まず、下記のリンク先から、FindGSL.cmakeファイルを作成します。
作成したFindGSL.cmakeファイルを、以下のディレクトリへ移動します。
/usr/share/cmake-2.8/Moduels
なお、ディレクトリへのパスは環境によって変わる場合があります。ただ、UbuntuとRaspbianは上のパスで動くことを確認しています。
テスト用プログラムとして以下のソースを、main.cppという名前で保存します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#include<stdio.h> #include<gsl/gsl_statistics.h> #define LEN 6 int main(int argc, char** argv) { double data[LEN] = {10.5, 18.2, 10.3, 15.4, 16.2, 18.3}; double max = gsl_stats_max( data, 1, LEN ); double min = gsl_stats_min( data, 1, LEN ); double mean = gsl_stats_mean( data, 1, LEN ); double sd = gsl_stats_sd( data, 1, LEN ); printf( "max: \t%f \n", max ); printf( "min: \t%f \n", min ); printf( "mean: \t%f \n", mean); printf( "sd: \t%f \n", sd ); return 0; } |
参考:GSL (GNU Scientific Library) のベクトル,行列に関する機能
更に、以下をCMakeLists.txtとして保存。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
cmake_minimum_required(VERSION 2.6) project(gslTest) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}") add_subdirectory(src) find_package(GSL REQUIRED) include_directories(${GSL_INCLUDE_DIRS} ${GSLCBLAS_INCLUDE_DIRS}) set(LIBS ${LIBS} ${GSL_LIBRARIES} ${GSLCBLAS_LIBRARIES}) target_link_libraries(${LIBS}) link_libraries(${LIBS}) add_executable(gslTest main.cpp) |
後は、makeでビルドするだけです。
cmake .
make
これで、gslTest という実行ファイルができているはずです。
GSLだけでなく、OpenCVなど様々なライブラリを使っていると、ビルド時の引数が長くなってしまいがちですが、cmakeなどを使うことで、作業が非常に楽になります。
-
前の記事
特製ユニティちゃんチョコのプレゼント 2014.02.22
-
次の記事
PDFファイルにフォントを埋め込む方法 2014.03.11