CLionを使うときのCMakeList.txtの書き方,フォルダ分けの方法

備忘録

CLionを使うときにおそらくぶつかる壁がCMakeだと思う. Makefileは書けるけどCMakeList.txtなんて知らないよ!

こんな感じになったので,調べて,書きました.


フォルダ分けについて

Clionはプロジェクト単位でソースを管理しています.

一つのディレクトリに全てのソースを置いてもいいのですが,後々管理が大変になるので,実行単位ごと(学生なら課題ごとも可)でディレクトリを分けましょう.ディレクトリで分けることでbuildも簡単になりますし,見通しも良くなります.

実際の作業

まずサブディレクトリを作りましょう.

サブディレクトリを作ってもツリービューの名前が灰色のままだと思います.そこで次にメインのCMakeList.txtにこのサブディレクトリを認識するよう記述しましょう.

cmake_minimum_required(VERSION 3.7)

project(untitled)

set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES main.cpp sample.cpp sample.h)

add_executable(untitled ${SOURCE_FILES})

add_subdirectory(ex1)

このadd subdirectory(…)でサブディレクトリを追加できます.今回はディレクトリ名がex1のものです.

ここで終わればよいのですが,まだもう少し.

これで保存しようとするとエラーダイアログが出現します.どうやらサブディレクトリにもCmakeList.txtが必要なようです.書きましょう.

cmake_minimum_required(VERSION 3.7)

project(ex1)

set(SOURCE_FILES ex1.cpp)

add_executable(${PROJECT_NAME} ${SOURCE_FILES})

書きました.

ソースファイルはいちいちこのように書かないとCLionが認識できないようです.

マクロを使ってうまいことやれたらいいのになぁ.


追記 OpenCVをCLionで使うときの設定の注意点

OpenCVを使うときはライブラリを追加して上げる必要があります.

MakeList.txtに記述しましょう.

追加するときに使うコマンドは

find_package( OpenCV REQUIRED )

target_link_libraries( DisplayImage ${OpenCV_LIBS} )

です.(Using OpenCV with gcc and CMake — OpenCV 2.4.13.2 documentation参照)

ですが,場所に注意する必要があります.

上のfind_packageは(多分)

add_executable(untitled ${SOURCE_FILES})

の前に,下の

target_link_libraries( DisplayImage ${OpenCV_LIBS} )

は必ず

add_executable(untitled ${SOURCE_FILES})

の下に配置する必要があるのです.

ここで地味につまりました.

ちなみに

include_directories(${OpenCV_INCLUDE_DIRS}) をterget_link_librariesの前に入れるべきかもしれません.

正直CLionがMakefile対応してたらもっと多くの人が使う気がする…

Windows10にしてからディスク使用率が常時100%だったので調べてみた

タイトル通りですが、Windows10にしてからディスク使用率が常に100%になってて非常に辛かったので、いろいろ調べてみました。

まず、Windowsでディスク使用率が100%になってるってどういう状況?

PCを使っていると、ふとファンがうるさいと気になるときがあります。そこでタスクマネージャーを開くと大体はディスク使用率が100%となっています。部屋で一人パソコンをいじっているときには気にならないのですが、外でノートPCを操作しているときにその状況に陥ると結構辛いものがあります。シラーっとした目線が辛いのです。

ずばり、原因はなに?

Windows10で(っていうかWindowsで)ディスク使用率が100%となっているときは、svchost.exeというプロセスがディスク資源(HDDやSSD)を食い潰しているときが多いそうです。実際私が直面した状況ではそうでした。聞くところによればsvchostがディスクのリソースの5割を占めているときこの症状が現れるそうです。

どうやって解決したの?

まず、いろいろとググって解決策を探してみました。そのときに見つかったのはおおむね以下のものです。
- 重いタスクを強制終了する。 - 特定のサービスを無効化する。 - 高速スタートアップを無効にする。

私の場合、これでは解決しませんでした。基本的にこれらの処理は一時しのぎにしかならなかったのです。そこで私が行った最終手段はSSD換装という手でした。

SSDにした効果はあったの?

本当に素晴らしく効果ありました。てかもっと早く検討すべきでしたね。3000円くらいでしたがここまで効果があるとは思いませんでした。SSDを載せてからディスク使用率が100%となったところを見たところがありません。完全にHDDがボトルネックとなっていたようです。

要はSSDっていいよ。っていう話でした。