C++
CMake
JetBrains
gtk
CLion

CLionでGTKとC++に入門してみた。

More than 1 year has passed since last update.


概要

ようやく夏休みに入った。

C++とかGTKとかとりあえずやってみないとな〜って思ってたので、やってみた。

本当はNode.jsの勉強とかもやろうと思ってたけど、環境構築が面倒で泣きたくなった。

多分C++も書くのが難しくて泣くかもしれないが…

CLionは体験版(30日間)を使用していきます。

期間的に夏休みに最適なので、みんなもとりあえず入れてみよう!!(適当)

また、環境構築などはお使いの環境によって違いがありすぎるので、各自で調べてください。

Windowsを使ってる人はVisualStudioにライブラリ突っ込んだほうが便利かも。

僕はVirtualBoxにWindows突っ込んで説明読んでやったけど、上手く行かなかったけどね(爆


初期設定

初回起動時にはデスクトップエントリーや、テーマどうするか聞かれる。

―私は黒っぽいテーマが好きなので、それにした。

動作に必要なCmake等は同梱?されているのかな、このあたりで躓くことは少なそうだね。


最初のプロジェクトの作成

まず、特に何も考えずにプロジェクトを作った。

image

おそらく、考えて作ってもIntelliJのように複数のテンプレートがあるわけではないので、同じ画面になる。


GTKライブラリを使えるようにする。

試しに、#include <gtk>と打ったところ、幾つか候補が出た。

ClionにすでにGtkmmとか、Gtk-2.0/3.0が入ってるみたいだが、使い方がよくわからない。

多分わかったら便利なはず、調べても日本語の情報は少ないので諦めた。

なので、普通に#include <gtk/gtk.h>する方法で書く。

まず、CmakeList.txtというのがあるので、以下を追加する。

元からあるものに変更を加える必要はないはずだ。

find_package(PkgConfig REQUIRED)

pkg_check_modules(GTK3 REQUIRED gtk+-3.0)

include_directories(${GTK3_INCLUDE_DIRS})
link_directories(${GTK3_LIBRARY_DIRS})

add_definitions(${GTK3_CFLAGS_OTHER})

target_link_libraries(${PROJECT_NAME} ${GTK3_LIBRARIES})

"CMake project needs to be reloaded"と表示されるので、どちらかを選ぶ。

私は別に勝手にリロードされても困らないので、Enable Auto-Reloadをクリックしておいた。

(でも、編集中はちょっと重かったのでAuto-Reloadはやめたほうが良いかもしれない。)

最後のtarget_link_libraries(${PROJECT_NAME} ${GTK3_LIBRARIES})は、自分で考えて書き換えてみた。

プロジェクト名を入れるべき場所のはずなので、${PROJECT_NAME}を使えば使い回しができる。

これで、ライブラリの設定はOKのはず。

main.cppに戻って最初に#include <gtk/gtk.h>と書いてみる。

image

正常に追加されたようだ。

次は、とりあえず簡単なプログラムを実行してみる。

幾つかのサイトを見て、こういう感じになった。

#include <iostream>

#include <gtk/gtk.h>

using namespace std;

int main (int argc, char **argv)
{
//Windowの入れ物を作る
GtkWidget *window;
//初期化とかオプション解析らしい
gtk_init(&argc, &argv);
//Windowを生成
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
//サイズの設定
gtk_widget_set_size_request(window, 200, 200);
//Windowの表示
gtk_widget_show_all(window);
//メインループ
gtk_main();
}

これを実行したら、こんな感じになった。

実行ボタン(右上)押すだけで良いから便利すぎる。


追記:2016/08/13

初回は実行するものを指定しないと行けないので、実行ボタンを押すと聞かれるので

Executableって部分をプロジェクト名に変更しなければならない。


image

まあ、普通はタイトルバーに閉じるボタンとかは出るはず。

僕の場合はi3-wmだからタイトルバーには文字しかない。

一応こんな感じで実行することができた。