GSLを使ったプログラムをCMakeでビルドする

GSL(GNU Scientific Library)というのは、様々な計算が可能となるライブラリです。

多くの機能を持っていますが、個人的に良く使うのは行列の計算です。これだけでも、このライブラリをインストールする価値はあると思います。

 

以下、インストールからプログラムのビルドまでの手順。

 

インストール

sudo apt-get -yV install gsl-bin libgsl0-dbg libgsl0-dev libgsl0ldbl

以上のコマンドで、インストールは完了です。

 

プログラムのビルド

GSLのインストールは簡単ですが、GSLを使ったプログラムをcmakeでビルドしようとしても、そのままでは出来ません。そこで、まず、下記のリンク先から、FindGSL.cmakeファイルを作成します。

log:GSL and CMake

 

作成したFindGSL.cmakeファイルを、以下のディレクトリへ移動します。

/usr/share/cmake-2.8/Moduels

なお、ディレクトリへのパスは環境によって変わる場合があります。ただ、UbuntuとRaspbianは上のパスで動くことを確認しています。

 

テスト用プログラムとして以下のソースを、main.cppという名前で保存します。

#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として保存。

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などを使うことで、作業が非常に楽になります。

 

たった2日でわかるLinux―Cent OS 6.4対応

広告を非表示にする