2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

C++でCairoやろうぜ!Cairomm入門 (0) 環境構築/ビルド

Last updated at Posted at 2020-06-27

Cairomm、やろうぜ!

注意 : この記事は UNIX/Linux 系OSでのビルドを想定しています。
Windowsではできないかもしれません。Macでは知りません(が、参考にはできるはずです)。

概要

C製描画ライブラリCairoのC++ラッパー、Cairommの日本語入門帳かつ個人的備忘録です。
Cairoは環境や用途に依存しない使い方ができて、実際画像/PDFビュワーやウインドウアプリケーション等、結構色んな所で採用されています。あなたにも是非触ってみてほしい!

では、まず環境構築/ビルドからやろうぜ。

環境構築

2つ方法があります。

1.makeを使う

ほやほやの最新版をインストールできます。

1.まず、cairo公式サイトにアクセスし、ダウンロード/解凍しましょう。
https://www.cairographics.org/cairomm/
(ダウンロードページは : https://www.cairographics.org/releases/ 上記URLから探してね)

2.コンソールで解凍ファイルにカレントディレクトリを移し、ディレクトリ内のINSTALLファイルを参考にしながら作業をしていきます。
全文は長すぎるのでここでは省略しますが、簡単な流れとしては

$ ./configure
$ make
$ make install

となります。まあテンプレですかね...

2.パッケージマネージャからインストール

apt等のパッケージマネージャを使えば、いとも簡単にインストールできます(最新版ではないことがしばしばですが...)

例えばUbuntuなら...ほい!

$ sudo apt install libcairomm-1.0-dev

早速やってみようぜ

とりあえず動作確認済だけでもしましょう。

下のコードをコピー&ペーストしましょう。

cairomm_test.cpp

#include <cairomm/context.h>
#include <iostream>

int main(){
    Cairo::RefPtr<Cairo::ImageSurface> surface = 
        Cairo::ImageSurface::create(Cairo::FORMAT_ARGB32, 300, 300);

    Cairo::RefPtr<Cairo::Context> cr = 
        Cairo::Context::create(surface);

    surface->write_to_png("cairo.png");

    std::cout<<
        "Hello, World!"
            <<std::endl;
}

これを次のようにコンパイルします。

$ [cc : g++,clang etc...] [source file] -o [executive file] `pkg-config --libs --cflags cairomm-1.0`

```console:例(文中の''を見落とさないで!) $ g++ cairomm_test.cpp -o cairomm_test pkg-config --libs --cflags cairomm-1.0`


多くのライブラリをリンクするために、本来はもっと長いコマンドを記述しなければならないところなのですが、`pkg-config`を使うことで上記のようにバッサリと省略することができます。便利。

では、コンパイルしてできた実行ファイルを実行しましょう。

```console:output
> Hello, World!

この時カレントディレクトリ内に、300x300の全ピクセル透明のPNG画像 image.pngが保存されていれば成功です。

...終!(内容控えめだったかも)

では、次回からはCairommの描画関数の使い方を説明していきます。

次 : C++でCairoやろうぜ!Cairomm入門 (1) 基礎的な関数

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?