mieki256's diary



2024/02/29(木) [n年前の日記]

#1 [prog] Makefile内でgccのバージョンを取得して処理を分けたい

Windows10 x64 22H2 + MinGW (gcc 6.3.0, gcc 9.2.0) の環境で、Makefile内でgccのバージョンを取得して処理を分けたいと思った。

gccのバージョンを取得するのは、以下が参考になった。

_シェルスクリプトやmakefileでのバージョン番号 x.y.z の比較 ShellScript - Qiita

gcc -dumpversion で、バージョン部分のみが取得できるらしい。
> gcc -dumpversion
6.3.0

なので、Makefile内で以下を記述しておけば、gccのバージョンを GCC_VERSION という変数に入れられるはず。
GCC_VERSION=$(shell gcc -dumpversion)

ここまでできれば、ifeq - else - endif で処理を分けられそう。
GCC_VERSION=$(shell gcc -dumpversion)

ifeq ($(GCC_VERSION),6.3.0)
# ----------------------------------------
# MinGW gcc 6.3.0 (SourceForge)
glbitmfont_sample.exe: glbitmfont_sample.c glbitmfont.h Makefile
    gcc $< -o $@ -static -lSOIL -lglfw3dll -lopengl32 -lwinmm -lgdi32 -mwindows
else
# ----------------------------------------
# MinGW gcc 9.2.0 (OSDN), MSYS2
glbitmfont_sample.exe: glbitmfont_sample.c glbitmfont.h Makefile
    gcc $< -o $@ -static -lSOIL -lglfw3 -lopengl32 -lwinmm -lgdi32 -mwindows
endif

.PHONY: clean
clean:
    rm -f *.exe *.o

#2 [prog] SOILのビルド手順をメモ

OpenGLのテクスチャ画像ファイル読み込みを簡単にしてくれる、SOIL (Simple OpenGL Image Library)のビルド手順を一応メモしておく。

環境は、Windows10 x64 22H2 + MinGW gcc 6.3.0 SourceForge版。

オリジナル版 soil.zp (2008/07/07版) が対象。

  1. soil.zip を解凍。
  2. projects/makefile/ をカレントディレクトリにする。
  3. obj というディレクトリを作成。
  4. Makefile を使って make。
  5. ../../lib/ の中に libSOIL.a が生成される。
  6. ../../src/ の SOIL.h を利用する。

MSYS2ならパッケージがある :

念のために書いておくけど、MSYS2 を使っているならパッケージが用意されているので自分でビルドする必要は無い。pacman でパッケージをインストールすれば使えるようになる。
$ pacman -S mingw-w64-i686-soil mingw-w64-x86_64-soil

#3 [prog] GLFW利用時にビットマップフォントを描画したい

C言語 + OpenGL + GLFW (GLFW3)利用時に、ビットマップフォントを描画したい。とりあえず今回は、等幅ビットマップフォント、ASCIIコード 0x20 - 0x7f が描画できれば十分なのだけど…。

せっかくだから、ヘッダーファイル(.h) を1つ include すれば使える状態にしてみたい。ということで書いてみた。一応 github に置いておきます。

_mieki256/glbitmfont: Use glbitmap() to draw bitmap fonts in OpenGL. It can be used by simply including a single header file.

_glbitmfont.h をダウンロードして、#include "glbitmfont.h" を記述すれば、ビットマップフォントを描画する glBitmapFontDrawString(char *str, int kind) という関数が使えるようになる。フォント種類は5種類の中から選べるようにしておいた。

_glbitmfont_sample.c が使用サンプル。最後のほうで「// draw text」と書いてあるあたりでビットマップフォントを描画している。

ただ、今回描画に使った glBitmap() は、OpenGL 3.x から非推奨になってしまったらしいので…。OpenGL 1.x を使って何かをしたい時ぐらいしか、今回書いたソレは使えない気もする…。

ディスプレイリストを使ったほうがいいのかもしれない :

以下のページで紹介されているソースを眺めたところ、こういった処理をするならディスプレイリストなるものを利用するのが一般的らしいなと…。

_グラフィックス科学演習 / Graphics Science Seminar

ただ、そのディスプレイリストも、OpenGL 3.x で非推奨になってる模様。

#4 [nitijyou] ネズミが出没して困ってる

数日前に親父さんが、親父さん達の寝室の床の上を走っていくネズミの姿を見かけたそうで。とうとう直接目撃、か…。

寝室の隣の部屋には米袋が数袋置いてあって、よくよく見ると袋の下の端に穴が開いているようにも見えた。おそらくネズミが米を齧りに来ていて、それを親父さんが目撃したのではないかと…。

ネズミ捕りシートを数枚置いてみたところ、一昨日、昨日、今日と、1日に1匹ずつ子ネズミが引っ掛かっていた。

また、お袋さんが米袋を部屋の奥から引っ張り出してみたら、見事に穴が開いていた。やはりネズミが食べに来ていたようだなと…。また、米袋の陰になっていた壁の部分に、約2cmほどの穴が開いていた。1.5cmの穴があればネズミは侵入してくるという話を見かけていたけど本当らしい。

ネズミは1度に6〜7匹の子供を産むらしいので、子ネズミが見つかったら、親ネズミと合わせて最低でも9匹は家の中をウロウロしてることになる。今回3匹は捕まえたから、少なく見積もっても残り6匹。どうしたもんか。いやまあ、出没しそうなところにネズミ捕りシートを置いておくしかないのだろうけど。

ピーナッツバターは効果無しだった :

家の外に置いてある、金網の籠の蓋が閉まるタイプのネズミ捕りに、生のさつまいも+ピーナッツバターを仕掛けてみたけれど、全くネズミが捕まらない。YouTubeの動画を眺めた感じでは、外国のネズミは吸い寄せられるようにピーナッツバターに集まってくるようだけど。どうやら日本のネズミはピーナッツバターが合わないのかもしれない。

一体何を使えばおびき寄せることができるのだろう…。米は食べていた実績があるけれど、あんな小さいものをぶら下げるのは難しいだろうし。

以上、1 日分です。

過去ログ表示

Prev - 2024/02 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project