つれづれなるままに無線研究日記

私は現在TUSで無線研究に従事する学生です。サークル(Mice)ではマイクロマウスというロボットをつくっていましたが人間関係に疲れを感じ現在は自主活動休止中です。これからがんばります。

ブログ開設記念「デスクトップと昨年のDXライブラリを用いたマウススラロームシミュレータについて」

家にデスクトップ環境を導入したことによりブログを書きやすい環境となりブログを欠く意欲がわいてきたために記事を書くことにする。

まずマウスコンピュータさんよりデスクトップを購入したのでそのPCの構成について記す

OS Windows7 Professional 64bit

CPU intel core i7-6700

memory PC4-17000 8GB

SSD/HDD 1TB(7200rpm/6Gbps)

graphics intel HD graphics 530

disc drive DVDスーパーマルチドライブ

chipset intel H110 Express

case ミニタワー

電源 500W

LAN 1000BASE-T

小生の利用においては"MATLAB simulink""inventor""kicad""e2studio""chrome"といった利用が中心になっている。

dGPUによるアクセラレートはかなり限定的でありPCゲームも好んでする性格ではないために今回は当初希望していたGeForce GTX1070については見送りとさせていただいた。その割りに電源500Wは多いと思われるかも知れないが、電源容量が少ない場合万が一の拡張も対処できず動作が不安定になる可能性があるので500Wを最低基準と考えた。

次にメモリに関してだがPC4-17000では2133MHzとDDR4のメモリにしては低速と思われるかも知れないが、これはチップセットのH110による最大でありこれ以上は意味がない。今回8GBとしたのは研究室でsimulinkchromeを同時に動作させたときにリソースモニター上でメモリの使用量は16GB中5GBが大体最大であり追加が必要ないと考えてのこと。inventorやkicadを同時に動作させたときにメモリ不足に陥らないかが不安であるがその際はチップセット側で最大32GBまで認識するとのことなのでそのときにまた考える。

DVDドライブに関してはbru-rayドライブが必要になる可能性が著しく低いと思われたからである。それ以上の理由はない。

 

また昨年度DXlibを用いたマウススラロームシミュレータを製作したがこれに関して記述したい。

記憶が欠落しているので思い出しながらとなる。

まず自分の持っているネットブックではストレージ不足からvisual studioがインストールできないのでcmd上でgccコンパイラを動かすことでできないかと色々調べたのがきっかけである。

結論から言えばもちろんコマンドプロンプト上でもDxlibは動作する。

makefileにより使うライブラリを含めコンパイルに関する記述ができるためだ。

下記がmakefileに記述した全文である。

-----------------------------------------
TARGET=main
CC=gcc
CXX=g++
CFLAGS=-g -O2 -w -ldxlib -Ldxlib
CXXFLAGS=$(CFLAGS)
LDFLAGS=-static-libgcc -static-libstdc++
INCDIR=-I"./DxLib/4_8_1/"
LIBDIR=-L"./DxLib/4_8_1/"
LIBS=-lDxLib -lDxUseCLib -lDxDrawFunc -ljpeg -lpng -lzlib -ltheora_static -lvorbis_static\
-lvorbisfile_static -logg_static -lbulletdynamics -lbulletcollision -lbulletmath -ltiff
LIBS+=-lgdi32
OBJS=main.o

.c.o:
$(CXX) $(CXXFLAGS) $(INCDIR) -c $<

$(TARGET): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(INCDIR) $(LIBDIR) -o $@ $^ $(LIBS)

clean:
@rm -fr $(TARGET).exe $(OBJS) *~ *.swp
------------------------------------------------
ただし、TARGETはターゲット名、OBJSには実際に今回生成し機械語に変換するオブジェクトファイルを入れる。

細かいmakefileの構文について説明は省くがこれとgccコンパイラであるmingw32を使用しソースコード上のディレクティブ(プリプロセッサに対する命令で頭に#がつく)を使用し

#define DDX_GCC_COMPILE
#define DDX_NON_INLINE_ASM
#include "DxLib.h"

を加える。上記の例ではDxlibフォルダとメイン文が同じディレクトリ内に存在することに注意すること。

これで後はDxlibの文法に従うだけでdxlibファイルが動かせる

分割コンパイルに関しては試していないが同様にできるものと思われる。

f:id:takaseijihe:20160913102629j:plain