Windows11でGNU Scientific Library(GSL)をビルドして使う

メモ書きです。

ソースコードの取得

CMakeでビルドできるようにしてくれているリポジトリがあるのでそれを利用します。

ビルド

$mkdir build
$cd build
$ cmake .. -G "Visual Studio 17 2022" -DNO_AMPL_BINDINGS=1 -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_INSTALL_PREFIX="C:\Lib\GSL"

GSL.slnを開いてINSTALLをビルドします。
CMAKE_INSTALL_PREFIXで指定したところにbin, include, libができます。
C:\Lib\GSL\binにパスを通します。

サンプルコードで動作確認

サンプルコードはここから:https://www.gnu.org/software/gsl/doc/html/usage.html#an-example-program

#include <stdio.h>
#include <gsl/gsl_sf_bessel.h>

int
main (void)
{
  double x = 5.0;
  double y = gsl_sf_bessel_J0 (x);
  printf ("J0(%g) = %.18e\n", x, y);
  return 0;
}

CMakeLists.txtを書きます。

cmake_minimum_required(VERSION 3.2)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(template)
add_executable(${PROJECT_NAME}
main.cpp
)

# GSL
set(GSL_ROOT_DIR "C:/Lib/GSL")
find_package(GSL REQUIRED)
target_link_libraries(${PROJECT_NAME} ${GSL_LIBRARIES})
target_include_directories(${PROJECT_NAME}
  PRIVATE ${GSL_INCLUDE_DIRS}
)

mkdir build
cd build
cmake ..
cmake --build . --config Release
でビルドします。
実行すると上記サイトと同じ出力が得られます。
J0(5) = -1.775967713143382642e-01

以上です。

この記事が気に入ったらサポートをしてみませんか?