c++アプリをcmakeとeclipseで開発するお話
TRANSCRIPT
C++アプリを Cmake と Eclipse で開発するお話
はしもとまさ@東海道らぐ12月名古屋オフ
2015/12/26
自己紹介
● 東海道らぐ元名古屋案内人です– 現在は関東地方担当。
● ちびぎーこ保護者会(別名:日本openSUSEユーザ会)の人– 冬コミ原稿書きました! (12/31 東「メ」36b)
…ん? またうち売り子やるの???
● おーぷん万葉プロジェクトやってます!
GenjiではCmakeとEclipseを利用して開発してます
さて、今日は開発環境のお話
C++で開発しているかな漢字変換です
開発環境構築手順はこんな感じ
1.ソースディレクトリにCmakeLists.txtを配置
2.cmakeコマンドでEclipseプロジェクトを作成
3.Eclipseでgdbを動かしてデバッグ!(C++11を利用)
結局この手順に落ち着いた^^
1. CmakeLists.txt の作成cmake_minimum_required(VERSION 2.8)PROJECT(Genji)
#select the release build type by default to get optimization flagsif(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") message(STATUS "Build type not specified: defaulting to release.")endif(NOT CMAKE_BUILD_TYPE)set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "")
include(CheckCXXCompilerFlag)CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)if(COMPILER_SUPPORTS_CXX11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")else() message(STATUS "${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")endif()
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
ADD_SUBDIRECTORY(lib/fujitsubo)#ADD_SUBDIRECTORY(lib/murasaki)ADD_SUBDIRECTORY(lib/aoi)ADD_SUBDIRECTORY(src)
おまじない1
おまじない2
1. CmakeLists.txt おまじない1
gdbでデバッグをするためのおまじない
#select the release build type by default to get optimization flagsif(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") message(STATUS "Build type not specified: defaulting to release.")
endif(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "")
CMAKE_BUILD_TYPE の指定がなければ「Release」に設定するよ〜というおまじない
※Eclipseプロジェクト作成時に使用します(後述)
1. CmakeLists.txt のおまじない2
次は C++11 を利用するためのおまじない
include(CheckCXXCompilerFlag)CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
if(COMPILER_SUPPORTS_CXX11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
else() message(STATUS "${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
コンパイラが C++11 をサポートしてるかチェックしてサポートしてたらフラグをセットするよ〜
というおまじない
2. Eclipseプロジェクトの作成
CmakeコマンドでEclipseプロジェクトを作成します
この辺りちとめんどい^^;;;
# Eclipse用のWorkディレクトリを作成mkdir GenjiWork; cd GenjiWork
# Cmakeコマンドでプロジェクトを作成cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ../Genji
Eclipseのプロジェクトを作成しますよ〜というおまじない
これ設定しないとEclipseでgdbが動かない!
あとはEclipseで作成したプロジェクトをインポートして完了〜
CmakeLists.txt のあるディレクトリを指定
3. Eclipse + gdb でデバッグ!
…の前にこの設定しないとEclipseのエディタが「こんな関数知らん」と怒り出す(ビルドは通る^^;)
1. プロジェクトのプロパティを開いて「C/C++ General」
> 「Preprocessor Include Path ...」を選択
2. 「Providers」を選択
3. 「CDT GCC Build-in Compiler Settings」の末尾に「-std=c++11」を追加
→「CDT GCC Build-in Compiler Settings」をProvidersメニューの一番上に持っていく
どや、簡単やろ!!!(ぇ
ご清聴、ありがとうございました!