SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
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 flags
if(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 flags
if(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メニューの一番上に持っていく
どや、簡単やろ!!!(ぇ
ご清聴、ありがとうございました!

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
30分で分かる!OSの作り方
30分で分かる!OSの作り方30分で分かる!OSの作り方
30分で分かる!OSの作り方
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
 
Docker Tokyo
Docker TokyoDocker Tokyo
Docker Tokyo
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
Guide To AGPL
Guide To AGPLGuide To AGPL
Guide To AGPL
 
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
 

Semelhante a C++アプリをCmakeとEclipseで開発するお話

Eclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにEclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめに
Akira Tanaka
 
Excel 方眼紙撲滅委員会 活動報告 2012.09 #pyconjp
Excel 方眼紙撲滅委員会 活動報告 2012.09 #pyconjpExcel 方眼紙撲滅委員会 活動報告 2012.09 #pyconjp
Excel 方眼紙撲滅委員会 活動報告 2012.09 #pyconjp
Takeshi Komiya
 
Excel 方眼紙撲滅委員会 活動報告 2012.09 #yapcasia #ltthon
Excel 方眼紙撲滅委員会 活動報告 2012.09 #yapcasia #ltthonExcel 方眼紙撲滅委員会 活動報告 2012.09 #yapcasia #ltthon
Excel 方眼紙撲滅委員会 活動報告 2012.09 #yapcasia #ltthon
Takeshi Komiya
 

Semelhante a C++アプリをCmakeとEclipseで開発するお話 (11)

Swift歴2ヶ月でアプリを8本リリースしてみた話
Swift歴2ヶ月でアプリを8本リリースしてみた話Swift歴2ヶ月でアプリを8本リリースしてみた話
Swift歴2ヶ月でアプリを8本リリースしてみた話
 
資料
資料資料
資料
 
C#でわかる こわくないMonad
C#でわかる こわくないMonadC#でわかる こわくないMonad
C#でわかる こわくないMonad
 
Eclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにEclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめに
 
EclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling reportEclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling report
 
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミングエクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
 
Excel 方眼紙撲滅委員会 活動報告 2012.09 #pyconjp
Excel 方眼紙撲滅委員会 活動報告 2012.09 #pyconjpExcel 方眼紙撲滅委員会 活動報告 2012.09 #pyconjp
Excel 方眼紙撲滅委員会 活動報告 2012.09 #pyconjp
 
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみた
 
Excel 方眼紙撲滅委員会 活動報告 2012.09 #yapcasia #ltthon
Excel 方眼紙撲滅委員会 活動報告 2012.09 #yapcasia #ltthonExcel 方眼紙撲滅委員会 活動報告 2012.09 #yapcasia #ltthon
Excel 方眼紙撲滅委員会 活動報告 2012.09 #yapcasia #ltthon
 
【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...
【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...
【DL輪読会】Bridge-Prompt: Toward Ordinal Action Understanding in Instructional Vi...
 
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
 

Mais de Masahiko Hashimoto

続・Cannaをフォークしてみた
続・Cannaをフォークしてみた続・Cannaをフォークしてみた
続・Cannaをフォークしてみた
Masahiko Hashimoto
 
秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法
Masahiko Hashimoto
 

Mais de Masahiko Hashimoto (20)

OSSかな漢字変換『Egoistic Lily』の紹介&今後の展望
OSSかな漢字変換『Egoistic Lily』の紹介&今後の展望OSSかな漢字変換『Egoistic Lily』の紹介&今後の展望
OSSかな漢字変換『Egoistic Lily』の紹介&今後の展望
 
DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?
DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?
DNNを使用した新しいかな漢字変換『EgoisticLily』 その仕組みとは?
 
Dockerいろいろ使って思うこと
Dockerいろいろ使って思うことDockerいろいろ使って思うこと
Dockerいろいろ使って思うこと
 
自作かな漢字変換「Genji」をつくったよ
自作かな漢字変換「Genji」をつくったよ自作かな漢字変換「Genji」をつくったよ
自作かな漢字変換「Genji」をつくったよ
 
BrowserMob-Proxyのお話
BrowserMob-Proxyのお話BrowserMob-Proxyのお話
BrowserMob-Proxyのお話
 
DeepLearning入門以前
DeepLearning入門以前DeepLearning入門以前
DeepLearning入門以前
 
かな漢字変換ソフト「Genji」をつくってみた
かな漢字変換ソフト「Genji」をつくってみたかな漢字変換ソフト「Genji」をつくってみた
かな漢字変換ソフト「Genji」をつくってみた
 
あひるに焼かれた話と今後のおーぷん万葉について
あひるに焼かれた話と今後のおーぷん万葉についてあひるに焼かれた話と今後のおーぷん万葉について
あひるに焼かれた話と今後のおーぷん万葉について
 
ホットな日本語入力技術のお勉強。〜 OSC 2016 Hamanako 編 〜
ホットな日本語入力技術のお勉強。〜 OSC 2016 Hamanako 編 〜ホットな日本語入力技術のお勉強。〜 OSC 2016 Hamanako 編 〜
ホットな日本語入力技術のお勉強。〜 OSC 2016 Hamanako 編 〜
 
おーぷん万葉プロジェクトとは
おーぷん万葉プロジェクトとはおーぷん万葉プロジェクトとは
おーぷん万葉プロジェクトとは
 
おーぷん万葉プロジェクトの進捗とIzumoのその後
おーぷん万葉プロジェクトの進捗とIzumoのその後おーぷん万葉プロジェクトの進捗とIzumoのその後
おーぷん万葉プロジェクトの進捗とIzumoのその後
 
ホットな日本語技術の(ちょっとした)お勉強。
ホットな日本語技術の(ちょっとした)お勉強。ホットな日本語技術の(ちょっとした)お勉強。
ホットな日本語技術の(ちょっとした)お勉強。
 
京都発祥日本語入力「FreeWnn」は(今度こそ)どこまで賢くなれるか?
京都発祥日本語入力「FreeWnn」は(今度こそ)どこまで賢くなれるか?京都発祥日本語入力「FreeWnn」は(今度こそ)どこまで賢くなれるか?
京都発祥日本語入力「FreeWnn」は(今度こそ)どこまで賢くなれるか?
 
TrieとLOUDS??
TrieとLOUDS??TrieとLOUDS??
TrieとLOUDS??
 
C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。
 
アヒルヤキを変換してみよう
アヒルヤキを変換してみようアヒルヤキを変換してみよう
アヒルヤキを変換してみよう
 
Nginxで日本語入力を遊んでみよう!
Nginxで日本語入力を遊んでみよう!Nginxで日本語入力を遊んでみよう!
Nginxで日本語入力を遊んでみよう!
 
続・Cannaをフォークしてみた
続・Cannaをフォークしてみた続・Cannaをフォークしてみた
続・Cannaをフォークしてみた
 
Cannaをフォークしてみた
CannaをフォークしてみたCannaをフォークしてみた
Cannaをフォークしてみた
 
秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法
 

Último

Último (12)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

C++アプリをCmakeとEclipseで開発するお話