12,796
回編集
(→概要) |
|||
244行目: | 244行目: | ||
<br> | <br> | ||
===== CMakeLists.txtを使用する場合 ===== | |||
<syntaxhighlight lang="cmake"> | |||
# Pkg-configを使用する場合 | |||
find_package(Eigen3 <Eigenライブラリのバージョン 例: 3.3> REQUIRED NO_MODULE) | |||
# Pkg-configを使用しない場合 (Eigenライブラリのインクルードパスを直接指定) | |||
# 例えば、Eigenライブラリを手動でダウンロードした場合は、EIGEN3_INCLUDE_DIRにパスを設定する | |||
# set(EIGEN3_INCLUDE_DIR "<Eigenのインクルードディレクトリ>") | |||
# include_directories(${EIGEN3_INCLUDE_DIR}) | |||
# Eigenライブラリとのリンク (find_packageを使用する場合) | |||
# add_executableコマンドの後 | |||
target_link_libraries(${PROJECT_NAME} PRIVATE | |||
Eigen3::Eigen | |||
) | |||
# ビルド設定 | |||
if(CMAKE_BUILD_TYPE STREQUAL "Debug") | |||
# デバッグビルド設定 | |||
add_definitions(-DEIGEN_INITIALIZE_MATRICES_BY_NAN) | |||
add_definitions(-DEIGEN_DEBUG) | |||
endif() | |||
# 最適化オプション | |||
if(CMAKE_BUILD_TYPE STREQUAL "Release") | |||
add_definitions(-DNDEBUG) | |||
if(CMAKE_COMPILER_IS_GNUCXX) | |||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -march=native") | |||
endif() | |||
endif() | |||
# OpenMPサポートを追加 (オプション) | |||
# 行列演算の並列化に使用可能 | |||
# find_package(OpenMP) | |||
# if(OpenMP_CXX_FOUND) | |||
# target_link_libraries(my_program OpenMP::OpenMP_CXX) | |||
# endif() | |||
</syntaxhighlight> | |||
<br> | |||
===== Eigenライブラリの使用例 ===== | ===== Eigenライブラリの使用例 ===== | ||
行列計算ライブラリであるEigenライブラリを使用することもできる。<br> | 行列計算ライブラリであるEigenライブラリを使用することもできる。<br> |