2018年8月18日土曜日

MSYS2 で openFrameworks の環境を整える

環境

  • OS: Windows10 Pro
  • MSYS2 インストール直後

作業ディレクトリは ~/project/of_study

基本的には IDE setup guides - MSYS2 - openFrameworksJp の通りにやっていくだけ。

※ 詳しいことはわからないが、MSYS2 MinGW 32-bit で実行しないといけないようだ。(64-bit でやったら make でエラーになった)

MSYS2 環境の準備

環境のアップデート

シェルを再起動して更新続行

ここまでが openframeworks に書いてある手順なのだけれど、 curl とかがまともに動かないっぽいのでシステム全体をアップデート。

ダウンロードした openFrameworks のパッケージを展開するために unzip コマンドをインストール。

必要なファイルのダウンロード・展開

ライブラリのビルド

サンプルのビルド

必要なパスを通す

mingw32 の bin が見つかるようにパスを通す。

いつも mingw32 使うわけではないので、その都度追加することになりそう。

サンプルプロジェクトのビルドと実行

実行するとこんな感じ。

以上。

参考資料

2018年8月14日火曜日

debian で Google Test 環境を整える

とりあえず動作確認。

以下のプログラム test_example.cpp を実行できるところまで。

test_example.cpp

#include "gtest/gtest.h"

namespace {

TEST(Practice, First) {
    EXPECT_EQ(1, 1);
}

}

環境

  • OS: Windows 10 Pro
  • Docker: 18.06.0-ce, build 0ffa825
  • Image: debian:stretch-slim

debian アップデート

apt-get update

必要パッケージのインストール

C/C++ ビルドのために build-essential を、 googletest のソース取得とビルドのために、 googletest, cmake をインストール。

apt-get install build-essential cmake googletest

googletest のビルド

debian の googletest パッケージは、ソースしか入っていないので、ビルドする必要がある。

cd ${PATH_TO_WORK}
mkdir googletest
cd googletest
cmake /usr/src/googletest/googletest
make

これで、 libgtest.a, libgtest_main.a が生成される。 共有ライブラリとしてビルドしたい場合には、 cmake -DBUILD_SHARED_LIBS=ON /usr/src/googletest/googletest とすると .so を生成してくれる。

動作確認

あとは、ビルド時に .a-lpthread を使うようにすれば OK.

# テストビルド
cd ${PATH_TO_WORK}
g++ ./test_example.cpp ./googletest/libgtest.a ./googletest/libgtest_main.a -lpthread -o ./test_example

# テスト実行
./test_example
Running main() from gtest_main.cc
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from Practice
[ RUN      ] Practice.First
[       OK ] Practice.First (0 ms)
[----------] 1 test from Practice (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[  PASSED  ] 1 test.

はい。

MSYS2 で Google Test 環境を整える

とりあえず動作確認。

以下のプログラム test_example.cpp を実行できるところまで。

test_example.cpp

#include "gtest/gtest.h"

namespace {

TEST(Practice, First) {
    EXPECT_EQ(1, 1);
}

}

環境

  • OS: Windows 10 Pro
  • MSYS2

MSYS2 インストール直後の状態から始めます。

MSYS2 アップデート

# 1 回目は mintty とか pacman のアップデート
# 「×」でウィンドウを消して MSYS 再起動。
pacman -Syu
pacman -Syu

必要パッケージのインストール

主に g++, make, gtest のためのパッケージをインストールする。

pacman -Ss mingw-w64-x86_64-toolchain mingw-w64-x86_64-gtest

動作確認

基本これだけなので、最初のアレをもうビルドできるはず。

# テストビルド
g++ ./test_example.cpp -lgtest -lgtest_main -o test_example.exe

# テスト実行
./test_example.exe
Running main() from gtest_main.cc
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from Practice
[ RUN      ] Practice.First
[       OK ] Practice.First (0 ms)
[----------] 1 test from Practice (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[  PASSED  ] 1 test.

はい。