忍者ブログ

molyb's note

Home > > [PR] Home > research > CMakeの使い方メモ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

CMakeの使い方メモ

最近はめっききハードウェアを触らなくなってしまった.
もっぱらシミュレータの開発に明け暮れる日々…

さて,プログラムにはもっぱらEmacsを使っているので,Makefileを自分で作る必要がある.最近作ってるプログラムがそれなりに大きくなってきたので並列ビルドをしてやろうと思い
make -j6
なんてコマンドを実行してみたものの,何故か全然早くならない.どうにかならないものかと思っていたときにCMakeが並列ビルドに対応していると知り,ちょうどMakefileを書くこと自体めんどくさく感じていたのでとりあえず試してみた…日本語資料少ないの何とかなんねーかな.

英語のドキュメントを読みつつ適当に手元にあったサンプルプログラム(yamlを用いたデータ読み込み)用にCMakeLists.txtファイルを記述してCMakeのコマンドを実行
cmake .
よし…あれ?(´・ω・`)エラー??
原因を確認した所,どうもライブラリのパスを定義するときに,相対パスでは通らなくなったらしい.
インクルードは相対パスだけでいけるのになんでこんな紛らわしい仕様にしたんだ…
#CMakeLists.txt
cmake_minimum_required(VERSION 2.8.1)
project(simulator CXX)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR})

add_definitions(-O2 -Wall -Wextra)
include_directories(include)
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib)

set(source src/main.cpp src/readYaml.cpp)

add_executable(main ${source})
target_link_libraries(main yaml-cpp)
こんな感じに書き換えて実行すると上手く行った.
どうもver. 2.8.1からこの仕様になったらしい.

とりあえずこれでうまくMakefileを作れて,並列ビルドも上手く出来てるみたい.
でも,Linuxでしか使わないし,中間生成ファイルとか実行ファイルの生成場所とかを考えると,Makefile書くのとどちらが手間なのだろうか(´・ω・`)
とりあえずもう少し使って様子を見てみることにする.

拍手[0回]

PR
コメント
お名前
タイトル
メールアドレス
URL
コメント
パスワード

最新コメント

ブログ内検索

カウンター